본문 바로가기
파이썬

[Python] TypeError: unsupported operand type(s) 오류 해결하기

by JJONY 2025. 4. 1.
반응형

Python을 배우다 보면 다양한 타입 관련 오류를 만나게 됩니다. 그 중에서도 TypeError: unsupported operand type(s)는 자주 마주치는 대표적인 오류입니다. 이 오류는 서로 더할 수 없는 타입을 연산하려고 할 때 발생하며, 초보자들이 문자열과 숫자, 리스트와 정수 등을 실수로 함께 연산하면서 흔히 발생합니다. 이번 포스팅에서는 이 오류가 발생하는 원인과 이를 해결하는 방법을 자세히 알아보겠습니다.

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 오류가 발생하는 원인과 해결 방법
반응형

댓글