반응형
개요
숫자 5가 주어진 정수 내에 포함되어 있는지 판단하기 위하여
아래와 같은 조건문을 작성했다고 가정해보도록 하겠습니다.
a = 135
if 5 in a:
print('5가 포함되어 있습니다.')
# 결과
TypeError: argument of type 'int' is not iterable
원인
인덱싱이 가능한 리스트, 문자열 등 자료형이나 원소를 순회할 수 있는
generator 자료형과 같은 경우는 in 구문으로 원소 포함 여부를 체크할 수 있지만,
정수, 실수 등과 같은 자료형은 순회하면서 "2번째로 오는 값이 무엇인가?" 등을 정의할 수 있는
자료형이 아니기에 in 구문으로 원소 포함 여부를 체크할 수 없어서 나타나는 오류입니다.
해결법
포함 여부를 in 구문으로 찾고 싶다면 문자열 등 순회할 수 있는 자료형으로 변환해주신 뒤,
변환된 값에 대하여 포함 여부를 체크해주시면 됩니다.
예시로, 위 코드를 아래처럼 바꾸면 에러를 해결할 수 있습니다.
a = 135
if '5' in str(a): # 문자열 등 iterable한 자료형으로 변환 후에 검사
print('5가 포함되어 있습니다.')
# 결과
5가 포함되어 있습니다.