Enter를 치니, 다시 오류가 뜹니다.
결과
TypeError Traceback (most recent call last) <ipython-input-2-8a9242c45cb5> in <module> 1 print("당신의 아이큐는 몇입니까?") 2 iq = input() ----> 3 iq = iq - 30 4 print("당신의 아이큐는 " + iq + " 입니다.") TypeError: unsupported operand type(s) for -=: 'str' and 'int'
오류가 나와도 당황하지 말고, 오류 메시지를 살펴보세요.
오류 메시지는 코드에서 문제가 있는 부분을 화살표로 표기해 줍니다. 3번째 줄의 코드에 화살표가 있네요. 어떤 문제인지는 맨 아래 내용을 보면 돼요. str과 int가 지원되지 않는 타입이라고 하는데, 한번 생각해 봅시다.
input()으로 무언가를 입력받으면 항상 str 타입으로 받게 되어 있습니다. 즉, 파이썬이 제공하는 input() 함수는 데이터를 받으면 어떤 데이터를 입력받든지 상관없이 str, 즉 문자열 타입으로 저장하는 함수였던 겁니다. 30을 입력받든 30.5를 입력받든 hello를 입력받든, 모두 문자열 형태로 보관되는 거죠.
그래서 변수 iq에 180이라는 str을 받았는데, 문자열에서 숫자 30을 빼려고 하니 뺄 수가 없었습니다. 180이라는 문자열에서 숫자를 빼라는 건, 컴퓨터 입장에서는 “"안녕하세요"에 5를 더하면 답이 뭡니까?”라고 물어보는 것과 비슷하게 느껴졌을 거예요. 그러면 어떻게 해야 할까요?