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

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

by about_IT 2025. 5. 27.
728x90

ValueError: invalid literal for int() with base 10: 'abc' 오류는 문자열을 정수형으로 변환하려고 할 때, 해당 문자열이 10진수 정수로 해석할 수 없는 내용일 경우 발생합니다. 즉, int() 함수는 내부적으로 숫자만 포함된 문자열만 처리할 수 있으며, 영문자나 특수 문자가 포함된 경우에는 변환에 실패하게 됩니다.

이 오류는 사용자 입력 처리, 파일에서 읽은 데이터 변환, 웹 파라미터 처리 등 외부 문자열 데이터를 int()로 변환할 때 자주 발생합니다. 따라서 해당 문자열이 실제로 정수로 변환 가능한지 사전에 확인하거나 예외 처리가 필요합니다.

● 오류 발생 예시

value = "abc"
num = int(value)

위 코드는 value에 숫자가 아닌 문자열 'abc'가 저장되어 있기 때문에 정수형으로 변환하려 할 때 오류가 발생합니다.

ValueError: invalid literal for int() with base 10: 'abc'

● 해결 방법

  • 입력값이 숫자로만 구성되었는지 isdigit() 함수로 사전 확인
  • 예외 처리를 통해 잘못된 입력을 무시하거나 기본값으로 대체
  • float 값의 경우 float()로 먼저 변환 후 int() 적용

● 예시 코드

value = "123"
if value.isdigit():
    num = int(value)
    print(num)
else:
    print("숫자가 아닙니다.")

● 자주 하는 실수

  • 사용자 입력을 검증 없이 바로 int()로 변환
  • 공백, 쉼표, 문자 등이 섞인 문자열을 숫자로 처리
  • None이나 빈 문자열('')에 대해 변환 시도

● 결론

ValueError - invalid literal for int() 오류는 문자열이 정수형으로 해석될 수 없을 때 발생합니다. 사용자 입력이나 외부 데이터처럼 신뢰할 수 없는 문자열을 처리할 때는 반드시 변환 전에 문자열이 유효한지 검사하거나 예외 처리(try-except) 구문을 활용하여 안정성을 확보해야 합니다.

728x90