이번 글에서는 파이썬을 배우면서 초보자들이 자주 만나는 오류 중 하나인 TypeError에 대해 다뤄보려고 합니다. 이 오류는 “자료형이 맞지 않는다”는 뜻인데요, 한마디로 Python이 "이건 이런 자료형에서 못 써요!"라고 말하는 상황입니다. 자료형(Type)을 정확히 이해하고 사용하는 것이 중요하겠죠? 😊
1. 왜 이런 오류가 발생할까?
파이썬은 자료형에 따라 수행할 수 있는 연산이나 함수가 제한됩니다. 서로 맞지 않는 자료형을 잘못 조합하거나, 적절하지 않은 방식으로 사용하면 TypeError가 발생합니다. 대표적인 상황을 살펴볼까요?
문자열과 숫자를 더하려고 할 때:
print("나이는 " + 25 + "살입니다.")
여기서 + 연산은 문자열과 문자열을 연결할 수 있지만, 문자열과 숫자를 직접 더하려고 하면 오류가 납니다.
len(42)
len() 함수는 문자열, 리스트 등 길이를 알 수 있는 객체에서만 동작합니다. 숫자 타입은 길이라는 개념이 없기 때문에 TypeError를 발생시킵니다.
2. 발생 예시
(1) TypeError: can only concatenate str (not "int") to str
name = "Alice"
age = 25
print("이름은 " + name + "이고 나이는 " + age + "살입니다.")
여기서는 age가 숫자(int) 자료형이기 때문에 문자열과 바로 더할 수 없습니다.
(2) TypeError: object of type 'int' has no len()
number = 100
print(len(number))
여기서 len() 함수는 숫자(int)에 대해 적용할 수 없습니다.
3. 해결 방법
(1) 자료형 변환 활용하기
자료형이 맞지 않는 경우, 적절히 변환하면 문제를 해결할 수 있습니다. 위 예시를 수정해볼까요?
name = "Alice"
age = 25
print("이름은 " + name + "이고 나이는 " + str(age) + "살입니다.")
숫자(int)를 문자열(str)로 변환하면 + 연산이 잘 동작합니다.
(2) 자료형 확인하기
코드 작성 중 어떤 자료형을 다루고 있는지 확실하지 않다면 type() 함수를 활용해 확인해보세요.
number = 42
print(type(number)) # <class 'int'>
(3) 함수 사용법 이해하기
사용하려는 함수가 어떤 자료형에 적용되는지 공식 문서를 참고하거나, 함수의 사용 예제를 확인하는 것도 중요합니다.
예를 들어, len() 함수는 문자열, 리스트, 튜플 등에서만 사용할 수 있습니다.
결론
TypeError는 주로 자료형의 불일치에서 발생하는 오류로, 초보자가 자료형의 개념을 익히는 데 큰 도움이 되는 오류입니다. 프로그램 작성 전에 자료형을 확인하고, 변환하는 습관을 들이면 이런 오류를 쉽게 예방할 수 있습니다.
다음 글에서는 또 다른 자주 발생하는 오류를 다루면서, 더욱 안정적이고 깔끔한 파이썬 코드를 작성하는 방법을 공유하겠습니다.
'Trial & Error' 카테고리의 다른 글
리눅스에서 발생하는 Chromadb Error (0) | 2024.12.22 |
---|---|
파이썬 입문 시에 많이 보는 에러(4) - SyntaxError (0) | 2024.12.18 |
파이썬 입문 시에 많이 보는 에러(3) - import 오류 (0) | 2024.12.17 |
파이썬 입문 시에 많이 보는 에러(2)-NameError (0) | 2024.12.16 |
파이썬 입문 시에 많이 보는 에러(1) - IndentationError (1) | 2024.12.16 |