파이썬 에러 ValueError: invalid literal for int() with base 10: '173.5'

Dongwon Ahn·2020년 8월 17일
2

파이썬 에러노트

목록 보기
1/1

에러

파이썬 형변환 에러입니다.

파이썬에서 형변환을 할 경우 아래와 같습니다.

  • 문자형으로 바꿀 때는 str()
  • 정수형으로 바꿀 때는 int()
  • 실수형으로 바꿀 때는 float()

에러 발생 코드

height=int(input("키 정보 cm 단위로 입력:"))

해당 코드를 돌렸을 때 소수점이 포함된 값을 받으면 아래 에러가 발생합니다.

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

에러 발생 이유

input으로 받은 값은 문자형입니다.
아래와 같이 실수형을 int로 변환하면 문제없이 코드가 돌아가지만 문자형일 경우 int함수가 받을 수 있는 값이 아니기 때문에 에러가 발생합니다.

>>> print(int(173.5))
173
>>> print(int('173.5'))
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    print(int('173.5'))
ValueError: invalid literal for int() with base 10: '173.5'

에러 해결 방법

문자형을 우선 실수형으로 변경 후 정수형으로 변경합니다.
방식은 아래와 같이 하면 됩니다.

height=input("키 정보 cm 단위로 입력:")
height = float(height)
height = int(height)
profile
Typescript를 통해 풀스택 개발을 진행하고 있습니다.

2개의 댓글

comment-user-thumbnail
2020년 12월 25일

while (True):
Num = int(input("숫자를 입력하셈 : "))
Num = float(Num)
Num = int(Num)
userNum = int(Num)
if 9 <-- userNum:
print("잘못입력했음. 다시 입력하셈")
continue
if 2 <= userNum:
subject = [1, 2, 3, 4, 5, 6, 7, 8]
for multiplied in subject:
print(userNum, 'x', multiplied, '=', userNum*multiplied)
else:
print("잘못입력했음. 다시 입력하셈")
continue

1개의 답글