본문 바로가기
프로그래밍언어/파이썬[Error]

[파이썬][Error] 112. ValueError - invalid literal for int() with base 10: 'abc'

by about_IT 2025. 6. 1.
728x90

ValueError: invalid literal for int() with base 10: 'abc' 오류는 문자열을 정수로 변환하려 할 때, 숫자로 해석할 수 없는 문자열이 포함되어 있을 경우 발생합니다.

이 오류는 int() 함수 사용 시 문자열이 10진수 형식이어야 한다는 조건을 충족하지 않을 때 발생합니다. 예를 들어 'abc', '3.14', '', '$100' 등은 정수 변환이 불가능합니다.

● 오류 발생 예시

value = 'abc'
num = int(value)  # 오류 발생

위 코드에서 'abc'는 숫자로 변환할 수 없기 때문에 ValueError가 발생합니다.

● 주요 원인

  • 숫자가 아닌 문자열을 int()로 변환 시도
  • 공백, 특수문자, 소수점 등이 포함된 문자열
  • 빈 문자열을 int()로 변환 시도

● 해결 방법

  • 문자열이 숫자인지 먼저 확인: str.isdigit() 사용
  • try-except 블록으로 예외 처리
  • 데이터 정제: 숫자 외의 문자 제거 또는 정규표현식으로 필터링

● 예시 코드 (정상 처리)

value = '123'
if value.isdigit():
    num = int(value)
    print(num)
else:
    print("숫자로 변환할 수 없습니다.")

● 결론

int() 함수를 사용할 때는 변환 대상 문자열이 10진수 형식의 숫자인지 확인이 필요합니다. 데이터 유효성 검사를 통해 프로그램이 중단되지 않도록 예외 상황을 처리하는 습관을 들이는 것이 좋습니다.

728x90