파이썬 기초

파이썬 str 문자열과 int 숫자 및 정수 구분하기

코니코니 2022. 9. 30. 03:00
반응형

파이썬 str 문자열과 int 숫자 및 정수 구분하기


파이썬 코딩을 처음 접하다 보면 문자열과 숫자형을 구분하는 것이 헷갈릴 수 있습니다. 같은 1이더라도 문자열이 될 수 있고 숫자형이 될 수도 있거든요. 파이썬 코딩에서 정말 중요한 기초이기 때문에 집고 넘어가보려 합니다!

일단 파이썬에서는 문자열과 숫자형은 함께 사용될 수 없습니다. 같은 숫자더라도 1+1에서 오류가 생길 수 있다는 말인데 아래 코드를 보면 쉽게 이해할 수 있습니다.

print(1 + 1)
==결과==
2

print('1' + '1')
==결과==
11

print(1 + '1')
==결과==
TypeError: unsupported operand type(s) for +: 'int' and 'str'

일단 첫번째 결과는 정상적으로 2가 나왔는데 두번째는 11이 나왔습니다. 그리고 마지막 결과는 타입에러라고 표시가 됩니다.

1번의 결과를 보면 알겠지만 숫자형의 제대로된 값을 얻기 위해서는 따옴표가 없이 숫자만 입력이 되어야 합니다. 2번의 결과는 따옴표로 둘러싸여 있는데 따옴표에 들어가는 모든 문자는 문자열에 해당이 됩니다. 다시 말해서 따옴표로 묶인 숫자는 더하고 빼는 기능이 없는 문자이기 때문에 1이라는 문자와 1이라는 문자가 더해져 11이 된다는 것이죠.

파이썬에서 문자열과 숫자형은 조합이 안된다는 것에 대한 답은 3번에서 찾을 수 있습니다. 해석을 하면 int와 str은 합쳐질 수 없기 때문에 타입 에러가 발생되는 것입니다.  1 + '1'은 int 숫자형과 str 문자열을 더하려는 것이기 때문에 (1+김)처럼 계산을 할 수 없는 조합이라고 해석을 할 수 있는거죠.

그러나 더하기나 빼기, 나누기 등이 아닌 곱셈의 경우에는 문자열과 정수의 조합이 가능하기도 합니다. 아래 예시를 볼까요?

print('키' * 5)

==결과==
키키키키키

따옴표에 들어가 있는 키라는 문자열에 정수 5를 곱해서 키를 다섯번 출력하는 예제입니다. 참고로 파이썬에서 곱셈은 *별표시로 사용됩니다.

어떤 문자열을 묶어서 출력하거나 변수값에 저장할 때는 곱셈을 활용할 수 있습니다.

print('키' * 5 + '나')

==결과==
키키키키키나

이렇게 키를 5번 곱해서 나온 문자열에 나를 추가할 수도 있습니다. 이 조합이 가능한 이유는 파이썬에서의 모든 계산은 앞에서부터 진행이 되기 때문에 키에 5를 곱하고 남은 값은 문자열인 키키키키키 밖에 없기 때문에 같은 문자열끼리 조합이 되는 것이죠.

print('키' * (5 + '나'))

==결과==
TypeError: unsupported operand type(s) for +: 'int' and 'str'

또한 먼저 계산할 부분을 괄호로 묶어주면 앞에서부터 계산을 하기 전에 괄호안의 값들 먼저 계산을 하게 됩니다. 그렇기 때문에 정수인 5와 문자열인 나를 묶게 된다면 타입 오류가 발생할 수 있는거죠.

반응형