더북(TheBook)

입력란에 180을 넣고 Enter를 입력하면! 역시 오류가 떴습니다. 한번 읽어보죠. 어디서 문제가 생겼나 한번 봅시다.

 

결과

TypeError Traceback (most recent call last)
<ipython-input-4-6e62f746f544> in <module>
      2 iq = input()
      3 iq = int(iq) - 30
----> 4 print("당신의 아이큐는 " + iq + " 입니다.")
TypeError: can only concatenate str (not "int") to str

 

앞에서 수정한 3번째 줄은 통과했네요! iq를 스트링으로 받고, 3번째 줄에서 int로 변환한 뒤 30을 빼고 다시 iq에 할당해주는 방식은 잘 작동합니다.

이번 문제는 마지막 4번째 줄에서 생겼네요. 오류 메시지를 보면 strint는 합쳐질 수 없다고 나와 있는데, 무슨 뜻일까요?

 

코드

print("당신의 아이큐는 " + iq + " 입니다.")

 

오류 메시지를 보면 위 코드에서 합치려고 하는 데이터 타입이 print(str + int + str) 이렇게 되어 있다고 합니다. 그러고 보니 처음에 input() 함수로 iq의 데이터를 받았을 때는 str 타입이었는데, 30이라는 숫자를 빼주기 위해 int로 데이터 타입을 바꿨습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.