반응형
Python을 배우다 보면 다양한 타입 관련 오류를 만나게 됩니다. 그 중에서도 TypeError: unsupported operand type(s)는 자주 마주치는 대표적인 오류입니다. 이 오류는 서로 더할 수 없는 타입을 연산하려고 할 때 발생하며, 초보자들이 문자열과 숫자, 리스트와 정수 등을 실수로 함께 연산하면서 흔히 발생합니다. 이번 포스팅에서는 이 오류가 발생하는 원인과 이를 해결하는 방법을 자세히 알아보겠습니다.
1. 오류 개요 및 발생 예시
1) 오류 메시지 예시
x = "10"
y = 5
print(x + y)
2) 터미널 실행 결과
TypeError: can’t concat str to int
또는 버전에 따라:
TypeError: unsupported operand type(s) for +: 'str' and 'int'
3) 발생 개요
이 오류는 연산자(+, -, *, /)에 대해 지원하지 않는 타입끼리 연산을 시도했을 때 발생합니다.
2. 오류 발생 원인 분석
1) 서로 다른 타입끼리 연산 시도
- 문자열과 숫자, 리스트와 숫자 등 서로 연산이 불가능한 경우
2) 함수 반환값의 타입 착각
- 함수가 문자열을 반환하는데 숫자와 덧셈을 시도하는 경우
3) 사용자 입력 처리 실수
- input() 함수는 항상 문자열로 반환되므로, 숫자로 변환하지 않고 연산하면 오류 발생
num = input("숫자를 입력하세요: ")
print(num + 10) # TypeError 발생
3. 해결 방법
1) 타입 변환을 명확하게 처리하기
문자열을 숫자로 변환
x = "10"
y = 5
print(int(x) + y) # 출력: 15
숫자를 문자열로 변환
x = "10"
y = 5
print(x + str(y)) # 출력: 105
2) 사용자 입력은 항상 형 변환하기
num = int(input("숫자를 입력하세요: "))
print(num + 10)
3) type()으로 타입을 미리 확인하기
print(type(x)) # <class 'str'>
4) 예외 처리 사용하기
try:
result = x + y
except TypeError:
print("지원되지 않는 타입 간 연산입니다.")
(이미지 필요: 정상 실행된 코드 결과 콘솔 캡처)
4. 추가 팁 및 참고 사항
- Python은 동적 타입 언어지만, 타입 확인 및 변환 습관이 중요합니다.
- IDE에서 타입 추론 기능이나 경고 메시지를 활용하세요.
- isinstance() 함수를 사용하여 조건에 따라 다른 처리를 할 수도 있습니다.
if isinstance(x, str):
x = int(x)
5. 요약 및 마무리
이번 포스팅에서는 TypeError: unsupported operand type(s) 오류의 원인과 해결 방법을 정리했습니다. 서로 다른 타입끼리 연산을 시도하거나 사용자 입력을 제대로 처리하지 않았을 때 주로 발생합니다. 오류 메시지를 정확히 읽고, type()이나 int(), str()을 활용한 형 변환을 적절히 사용하는 습관을 들이면 오류를 줄일 수 있습니다. 초보자일수록 타입에 민감하게 반응하는 코드 작성이 중요합니다.
6. 관련 글 링크
- 관련 글: Python에서 ValueError 오류가 발생하는 원인과 해결 방법
반응형
'파이썬' 카테고리의 다른 글
[Python] ValueError 오류가 발생하는 원인과 해결 방법 (0) | 2025.04.03 |
---|---|
[Python] range() 함수 사용법과 for문에서의 활용 예제 (0) | 2025.04.01 |
[Python] IndentationError 해결 방법 - 들여쓰기 오류 완전 정복 (0) | 2025.04.01 |
[Python] 리스트와 딕셔너리의 차이점과 사용법 정리하기 (0) | 2025.03.28 |
[Python] 함수 정의와 사용법 (0) | 2025.03.28 |
댓글