입력란에 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번째 줄에서 생겼네요. 오류 메시지를 보면 str과 int는 합쳐질 수 없다고 나와 있는데, 무슨 뜻일까요?
코드
print("당신의 아이큐는 " + iq + " 입니다.")
오류 메시지를 보면 위 코드에서 합치려고 하는 데이터 타입이 print(str + int + str) 이렇게 되어 있다고 합니다. 그러고 보니 처음에 input() 함수로 iq의 데이터를 받았을 때는 str 타입이었는데, 30이라는 숫자를 빼주기 위해 int로 데이터 타입을 바꿨습니다.