Python 개발을 하다 보면 다양한 오류 메시지를 마주하게 되는데요, 그 중 "TypeError: 'int' object is not subscriptable" 오류는 특히 초보 개발자들이 자주 겪는 문제 중 하나입니다. 이 글에서는 이 오류의 원인과 해결 방법을 자세히 알아보도록 하겠습니다.
오류의 원인
"TypeError: 'int' object is not subscriptable" 오류는 주로 숫자형(int) 객체에 대해 인덱싱이나 슬라이싱을 시도했을 때 발생합니다. Python에서는 숫자형 객체에 대해 인덱스를 사용하여 접근하려고 할 때 이를 허용하지 않습니다. 즉, 이 오류는 개발자가 실수로 정수를 배열이나 리스트처럼 다루려고 할 때 나타나게 됩니다.
예시
다음은 "TypeError: 'int' object is not subscriptable" 오류가 발생하는 대표적인 코드 예시입니다.
# 오류를 발생시키는 코드
number = 12345
print(number[1])
위 코드에서 number 변수는 정수형입니다. number[1]과 같이 정수에 대해 인덱스 접근을 시도하면 Python은 정수가 인덱싱을 지원하지 않는다고 판단하여 TypeError를 발생시킵니다.
해결 방법
이 오류를 해결하기 위해서는 먼저 변수의 타입을 확인하는 습관을 갖는 것이 중요합니다. 만약 변수가 리스트나 튜플, 문자열과 같은 시퀀스 타입이어야 한다면, 해당 타입으로 적절히 초기화했는지 검토해야 합니다.
1. 타입 확인 및 수정: 변수가 원하는 타입인지 확인하고, 필요하다면 적절한 타입으로 변경하세요.
# 수정된 코드
number = '12345' # 문자열로 변경
print(number[1]) # 이제 '2'가 출력됩니다.
2. 예외 처리: 코드를 작성할 때 예외 처리를 통해 타입 에러를 처리할 수 있습니다. 이렇게 하면 코드의 안정성을 높일 수 있습니다. 이 방식은 근본적인 해결책이 될 수는 없지만, 복잡한 코드들에서 오류가 발생하면 안될 때를 위하여 안정성을 높일 수 있는 방법이기 때문에 try - except 구문을 활용하는 것도 경우에 따라 활용할 수 있습니다.
number = 12345
try:
print(number[1])
except TypeError:
print("TypeError: 'int' object is not subscriptable. 변수를 확인하세요.")
결론
"TypeError: 'int' object is not subscriptable" 오류는 변수에 적절한 타입을 사용하지 않았을 때 발생합니다. 이 오류를 해결하기 위해서는 변수의 타입을 신중하게 확인하고, 필요하다면 타입을 적절히 변경하거나 예외 처리를 통해 안정적인 코드를 작성해야 합니다. 코드를 작성할 때는 이러한 오류가 발생하지 않도록 주의해야 하며, 발생했다면 위에서 설명한 방법을 참고하여 문제를 해결할 수 있습니다.
이 포스트가 Python 개발 중 오류 해결에 도움이 되기를 바랍니다. 추가 질문이 있으시면 언제든지 댓글을 통해 문의해 주세요. Happy coding!