liuxiuqing 发表于 2020-4-18 18:52:09

有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:54:55

本帖最后由 WangJS 于 2020-4-18 18:58 编辑

int是转换整数(参数只能传入字符串)你输入小数当然会报错啊{:10_250:}

具体内容请点我

liuxiuqing 发表于 2020-4-18 18:56:57

WangJS 发表于 2020-4-18 18:54
int是转换整数,你输入小数当然会报错啊

对啊 他不应该自动转换成一个整数吗?比方说输入95.6 他不应该自动转换成95吗?

斐波纳税 发表于 2020-4-18 18:59:03

“input()”函数返回的是字符串类型,而“int()”函数只能把整数的字符串转换成整形,不能将带有小数的字符串转换成整形。

BngThea 发表于 2020-4-18 18:59:42

改为float试试

斐波纳税 发表于 2020-4-18 18:59:51

liuxiuqing 发表于 2020-4-18 18:56
对啊 他不应该自动转换成一个整数吗?比方说输入95.6 他不应该自动转换成95吗?

你这里输入的95.6实际上是字符串类型的浮点数'95.6'

qiuyouzhi 发表于 2020-4-18 19:00:21

liuxiuqing 发表于 2020-4-18 18:56
对啊 他不应该自动转换成一个整数吗?比方说输入95.6 他不应该自动转换成95吗?

那是字符串,不能直接转换
要先float再int

WangJS 发表于 2020-4-18 19:00:56

liuxiuqing 发表于 2020-4-18 18:56
对啊 他不应该自动转换成一个整数吗?比方说输入95.6 他不应该自动转换成95吗?

你要想取整数位可以用地板除,栗子来了:
>>> int(4.5//1)
4

zltzlt 发表于 2020-4-18 19:01:22

liuxiuqing 发表于 2020-4-18 18:56
对啊 他不应该自动转换成一个整数吗?比方说输入95.6 他不应该自动转换成95吗?

不是的,int() 函数只能将浮点数转化为整数,或者字符串转化为整数,不能将字符串转化为浮点数。

提示:float() 函数可以将字符串转化为浮点数,可以把 int 替换成 float 。

永恒的蓝色梦想 发表于 2020-4-18 19:05:30

liuxiuqing 发表于 2020-4-18 18:56
对啊 他不应该自动转换成一个整数吗?比方说输入95.6 他不应该自动转换成95吗?

用 int(eval(input("请输入你的成绩:")))

WangJS 发表于 2020-4-18 19:08:25

本帖最后由 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("成绩输入错误")

zltzlt 发表于 2020-4-18 19:09:01

可以这样:

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("成绩输入错误")

liuxiuqing 发表于 2020-4-18 19:09:38

斐波纳税 发表于 2020-4-18 18:59
你这里输入的95.6实际上是字符串类型的浮点数'95.6'

感谢
页: [1]
查看完整版本: 有int函数为什么输入小数会报错????