有int函数为什么输入小数会报错????
score = int(input("请输入你的成绩:"))if 100 >= score >= 90:
print("A")
elif 90 > score >= 80:
print("B")
elif 80 > score >= 70:
print("C")
elif 70 > score >= 60:
print("D")
elif 0 <= score < 60:
print("不及格")
else:
print("成绩输入错误") 本帖最后由 WangJS 于 2020-4-18 18:58 编辑
int是转换整数(参数只能传入字符串)你输入小数当然会报错啊{:10_250:}
具体内容请点我 WangJS 发表于 2020-4-18 18:54
int是转换整数,你输入小数当然会报错啊
对啊 他不应该自动转换成一个整数吗?比方说输入95.6 他不应该自动转换成95吗? “input()”函数返回的是字符串类型,而“int()”函数只能把整数的字符串转换成整形,不能将带有小数的字符串转换成整形。 改为float试试 liuxiuqing 发表于 2020-4-18 18:56
对啊 他不应该自动转换成一个整数吗?比方说输入95.6 他不应该自动转换成95吗?
你这里输入的95.6实际上是字符串类型的浮点数'95.6' liuxiuqing 发表于 2020-4-18 18:56
对啊 他不应该自动转换成一个整数吗?比方说输入95.6 他不应该自动转换成95吗?
那是字符串,不能直接转换
要先float再int liuxiuqing 发表于 2020-4-18 18:56
对啊 他不应该自动转换成一个整数吗?比方说输入95.6 他不应该自动转换成95吗?
你要想取整数位可以用地板除,栗子来了:
>>> int(4.5//1)
4 liuxiuqing 发表于 2020-4-18 18:56
对啊 他不应该自动转换成一个整数吗?比方说输入95.6 他不应该自动转换成95吗?
不是的,int() 函数只能将浮点数转化为整数,或者字符串转化为整数,不能将字符串转化为浮点数。
提示:float() 函数可以将字符串转化为浮点数,可以把 int 替换成 float 。 liuxiuqing 发表于 2020-4-18 18:56
对啊 他不应该自动转换成一个整数吗?比方说输入95.6 他不应该自动转换成95吗?
用 int(eval(input("请输入你的成绩:"))) 本帖最后由 WangJS 于 2020-4-18 19:10 编辑
参考结果:
score = float(input("请输入你的成绩:"))
score = int(score//1)
if 100 >= score >= 90:
print("A")
elif 90 > score >= 80:
print("B")
elif 80 > score >= 70:
print("C")
elif 70 > score >= 60:
print("D")
elif 0 <= score < 60:
print("不及格")
else:
print("成绩输入错误")
可以这样:
score = float(input("请输入你的成绩:")) # 将字符串转化为浮点数
if 100 >= score >= 90:
print("A")
elif 90 > score >= 80:
print("B")
elif 80 > score >= 70:
print("C")
elif 70 > score >= 60:
print("D")
elif 0 <= score < 60:
print("不及格")
else:
print("成绩输入错误") 斐波纳税 发表于 2020-4-18 18:59
你这里输入的95.6实际上是字符串类型的浮点数'95.6'
感谢
页:
[1]