输入数值取整报错
求助贴:输入数值,取整(int, round)后判断级别,如下, 但运行输入66.6(带小数都)报错
score1=input('please type your score:')
score=int(score1)
level=('d' if 0<=score<60 else
'c' if 60<=score<80 else
'b' if 80<=score<90 else
'a' if 90<=score<100 else
's' if score==100 else
'please type 0-100')
print(score,' is level',level)
报错:
please type your score:66.6
Traceback (most recent call last):
File "C:/Users/Administrator/Desktop/1game.py", line 2, in <module>
score=int(score1)
ValueError: invalid literal for int() with base 10: '66.6'
取整的INT ,换成ROUND 也是报错 TypeError: type str doesn't define __round__ method。
请教大佬是怎么回事,该如何对输入的数值取整?谢谢大佬!
如果想想下取整的话:score1 = int(eval(score)) 字符串没办法直接int小数。
求整数,你可以在前面判断个isdigit,小数的话是会判断False的。
求小数,可以不int,直接float。36.0也算是小数。 同意楼上,可以先转换为浮点数在转整数 荣耀 发表于 2020-10-5 10:58
同意楼上,可以先转换为浮点数在转整数
但是如果我输入66呢,程序还是会报错
用eval函数不管输入整数还是小数都能实现转换 新手学习:
input接收的对象,同意按字符串处理,自然需要转换为数值类型。
int(),接收整数字符串,float()接收浮点字符串,唯独eval()函数则是来者不拒.
不转换为数值类型,round 函数无力可施。
我觉得最方便的还是直接使用eval()函数
score1=input('please type your score:')
score=eval(score1)
level=('d' if 0<=score<60 else
'c' if 60<=score<80 else
'b' if 80<=score<90 else
'a' if 90<=score<100 else
's' if score==100 else
'please type 0-100')
print(score,' is level',level)
页:
[1]