파이썬 형변환 에러입니다.
파이썬에서 형변환을 할 경우 아래와 같습니다.
- 문자형으로 바꿀 때는 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)
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