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

[파이썬][Error] 061. ValueError - invalid literal for int() with base 10 from user input

by about_IT 2025. 5. 29.
728x90

ValueError: invalid literal for int() with base 10 오류는 문자열을 int() 함수로 정수형으로 변환하려고 할 때, 해당 문자열이 10진수 정수 형식이 아닌 경우 발생합니다. 특히 사용자 입력을 처리할 때 숫자가 아닌 문자가 포함된 문자열을 변환하려 할 때 자주 발생합니다.

예를 들어 int("42")는 정상 작동하지만, int("hello"), int("42.5"), int("") 등은 모두 ValueError를 발생시킵니다.

● 오류 발생 예시

user_input = "abc"
number = int(user_input)

문자열 "abc"는 정수형으로 변환이 불가능하므로 ValueError가 발생합니다.

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

● 해결 방법

  • str.isdigit()으로 숫자인지 사전 확인
  • try-except 구문을 사용하여 예외 처리
  • 사용자 입력값을 정제(trim, 공백 제거 등)한 후 처리

● 예시 코드

user_input = input("숫자를 입력하세요: ")
try:
    number = int(user_input)
    print("입력된 정수:", number)
except ValueError:
    print("정수를 입력해야 합니다.")

● 자주 하는 실수

  • 소수점, 알파벳, 특수문자가 섞인 문자열을 int로 변환 시도
  • 입력값을 strip() 또는 replace() 없이 그대로 변환
  • 입력값이 빈 문자열이 될 수 있는 경우를 고려하지 않음

● 결론

ValueError - invalid literal for int() with base 10 오류는 문자열이 정수형 형식이 아닐 때 발생합니다. 입력값을 사전에 검사하거나, 예외 처리로 잘못된 입력을 유연하게 처리하는 것이 중요합니다.

728x90