[Python] TypeError: unsupported operand type(s) 오류, 초보자도 쉽게 해결하는 법

!
Python TypeError 해결 썸네일 이미지
< Python 오류 해결 >

Python에서 TypeError를 처음 만나셨나요? 걱정 마세요, 쉽게 해결할 수 있습니다!

안녕하세요, Python 초보자 여러분! 코딩을 하다 보면 갑자기 오류 메시지가 튀어나와 당황스러울 때가 있죠? 오늘은 그중에서도 자주 만나는 TypeError: unsupported operand type(s) 오류를 초보자도 이해하기 쉽게 설명하고, 해결 방법을 알려드릴게요. 이 글을 읽고 나면 "아, 이거였구나!" 하면서 자신 있게 코드를 고칠 수 있을 거예요!

이 오류는 뭐야? 

TypeError: unsupported operand type(s)는 한국어로 번역하면 "지원되지 않는 타입 간의 연산"이라는 뜻이에요. 쉽게 말해, Python이 "이 두 가지를 이렇게 계산할 수 없어요!"라고 말하는 거죠. 예를 들어, 숫자와 문자열을 더하려고 하면 Python이 혼란스러워해요.

예시를 볼까요?

a = "5"  # 문자열
b = 3    # 숫자
print(a + b)  # 에러! TypeError: unsupported operand type(s) for +: 'str' and 'int'
    

위 코드는 "5"(문자열)와 3(숫자)을 더하려고 해서 에러가 났어요. Python은 문자열과 숫자를 더하는 법을 모르거든요!

왜 이런 오류가 생길까?

Python TypeError 코드 설명 이미지
< TypeError 코드 분석 >

이 오류는 보통 서로 다른 데이터 타입을 잘못 섞어서 연산할 때 발생해요. Python에서 자주 쓰이는 데이터 타입은:

  • 숫자: int(정수, 예: 3), float(소수, 예: 3.14)
  • 문자열: str(예: "hello")
  • 리스트: list(예: [1, 2, 3])

예를 들어, 문자열 "5"와 숫자 3을 더하려고 하면 Python이 "이건 어떻게 해야 할지 모르겠어!"라고 하며 오류를 뱉는 거예요.

해결 방법, 이렇게 쉬울 수가! 

이 오류를 고치는 방법은 간단해요. 데이터 타입을 맞춰주면 Python이 행복해진답니다! 아래 단계별로 해결법을 알려드릴게요.

1. 오류 메시지 읽기

오류 메시지는 Python이 우리에게 보내는 힌트예요. 예를 들어:

TypeError: unsupported operand type(s) for +: 'str' and 'int'
    

이 메시지는 + 연산에서 문자열(str)과 숫자(int)가 문제라고 말해줘요. 어떤 변수가 문제인지 먼저 찾아봅시다.

2. 데이터 타입 확인하기

변수의 타입을 확인하려면 type() 함수를 써보세요.

a = "5"
b = 3
print(type(a))  # <class 'str'>
print(type(b))  # <class 'int'>
    

a는 문자열, b는 숫자라는 걸 알았어요!

3. 타입 변환하기

이제 타입을 맞춰줍시다. 두 가지 선택지가 있어요:

  • 숫자로 만들기: 문자열 "5"를 숫자로 바꾸려면 int() 또는 float()를 사용.
  • 문자열로 만들기: 숫자 3을 문자열로 바꾸려면 str()를 사용.

예시로 고쳐볼게요:

a = "5"
b = 3

# 숫자로 계산하고 싶을 때
print(int(a) + b)  # 출력: 8

# 문자열로 붙이고 싶을 때
print(a + str(b))  # 출력: "53"
    

4. 입력값 조심하기

input() 함수로 사용자 입력을 받으면, 입력값은 항상 문자열로 들어와요. 예를 들어:

num = input("숫자를 입력하세요: ")  # "10" 입력
print(num + 5)  # 에러!
    

이럴 땐 int()로 변환해줘야 해요:

num = int(input("숫자를 입력하세요: "))  # "10" → 10
print(num + 5)  # 출력: 15
    

5. 예외 처리로 안전하게

사용자가 숫자 대신 문자를 입력할 수도 있죠. 그럴 때를 대비해 try-except를 써보세요:

try:
    num = int(input("숫자를 입력하세요: "))
    print(num + 5)
except ValueError:
    print("숫자를 입력해주세요!")
    

이렇게 하면 코드가 더 튼튼해져요!

실전 예제: 오류 고쳐보기

Python TypeError 수정 예제 이미지
< TypeError 수정 예제 >

다음 코드를 보고 어디서 오류가 나는지, 어떻게 고칠지 생각해봅시다:
price = "1000"  # 상품 가격 (문자열)
tax = 0.1       # 세금 (소수)
total = price * (1 + tax)  # 총액 계산
print(total)
    

이 코드는 price(문자열)와 tax(소수)를 곱하려고 해서 에러가 나요. 고쳐볼까요?

price = int("1000")  # 문자열을 숫자로 변환
tax = 0.1
total = price * (1 + tax)
print(total)  # 출력: 1100.0
    

짜잔! 이제 정상적으로 작동해요. 

초보자를 위한 꿀팁 

  • 타입 확인 습관: 코드를 작성할 때 type(변수)로 타입을 자주 확인하세요.
  • 작은 테스트 먼저: 복잡한 코드라면, 작은 부분을 먼저 테스트해보세요.
  • 에러 메시지 읽기: 에러 메시지는 무서워 보이지만, 사실 문제를 해결할 단서를 줘요.
  • 구글링은 친구: 특정 오류가 이해 안 되면 "Python TypeError unsupported operand" 같은 키워드로 검색해보세요.

마무리

TypeError: unsupported operand type(s) 오류는 초보자도 쉽게 고칠 수 있는 문제예요. 핵심은 데이터 타입을 맞춰주는 것! 이 글을 통해 오류를 해결하는 방법을 익혔으니, 다음에 이 에러를 만나도 당황하지 마세요. 

궁금한 점이나 더 설명이 필요한 부분이 있다면 댓글로 남겨주세요. 여러분의 Python 여정이 더 즐거워지길 응원합니다! 🚀