python小白,请问以下代码,为何输入整数可以运行,输入一个小数却报错?比如7.6。

a=input('请输入1-100之间的数字:')
b=int(a)
if 1<=b<=100:
print('输入正确')
else:
print('输入错误')

请输入1-100之间的数字:7.6
Traceback (most recent call last):
File "D:/Python课后作业/002讲(2).py", line 2, in <module>
b=int(a)
ValueError: invalid literal for int() with base 10: '7.6'

input返回的是一个字符串,所以a不是int,而是字符串‘7.6’,而int内置的解析字符串的函数解析‘7.6’会失败。解决办法是:

即先转换为浮点数,然后截断为整型。

这个方法对小数和整数都可行。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-07-15

把第一句提示,改成请输入1-100内的整数,即可!

第2个回答  2020-07-14
int只是将整数字符串转整整型。不包括浮点,也就是小数。
要支持小数,就把int改成float本回答被提问者采纳
相似回答