Python으로 프로그램을 작성할 때 가장 자주 발생하는 오류중의 하나입니다. 숫자와 문자로 구성된 문자열을 동적으로 작성 하려한다면 다음내용을 꼭 기억해서 미리 오류없는 프로그램을 작성할 수 있기를 바랍니다.
오류 발생 재현하기
다음과 같이 선두 숫자가 0부터9까지 출력되는 프로그램을 작성하는 과제를 받았다면..
0회 처리
1회 처리
2회 처리
3회 처리
.. 중간 생략 ..
9회 처리
아마도 처음 Python을 배우신 분들은 다음과 같이 프로그램을 작성하리라 생각됩니다.
for i in range(10):
print(i + "회 처리")
또는 다음과도 같습니다.
i=0
while i < 10:
print(i + "회 처리")
i = i + 1
위 소스를 실행하면 다음과 같은 오류가 발생합니다.
TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’
소스 코드에서 i + “회 처리” 부분이 문제의 원인입니다. i는 숫자 값을 보유한 변수이고 “회 처리”는 문자열입니다. 숫자 ‘int’ 와 문자 ‘str’ 을 + 연산자로 계산 또는 문자연결을 할 수는 없습니다. 계산을 위해서는 양쪽 모두 숫자 ‘int’ 이거나 문자연결을 위해서는 양쪽 모두 문자 ‘str’ 이어야 합니다. 양쪽모두 숫자 ‘int’ 이다면 덧셈 결과를 출력하겠지만 “회 처리” 문자열을 숫자로는 변환할 수 없으므로 i 변수의 숫자 값을 문자로 변환한다면 문자연결 결과를 출력할 수 있습니다.
수정후 출력 결과 확인하기
str()함수는 숫자를 문자로 변환합니다. 다음과 같은 코드로 수정한다면 정상적인 결과를 출력할 수 있습니다.
for i in range(10):
print(str(i) + "회 처리")
또는 다음과 같습니다.
i=0
while i < 10:
print(str(i) + "회 처리")
i = i + 1
위의 소스 코드는 [Google Colab에서 Python 코드 실행하기] 글의 내용처럼 간단하게 직접 실행 할 수 있습니다.