鱼C论坛

 找回密码
 立即注册
查看: 3007|回复: 12

[已解决]有int函数为什么输入小数会报错????

[复制链接]
发表于 2020-4-18 18:52:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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("成绩输入错误")
最佳答案
2020-4-18 19:01:22
liuxiuqing 发表于 2020-4-18 18:56
对啊 他不应该自动转换成一个整数吗?比方说输入95.6 他不应该自动转换成95吗?

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

提示:float() 函数可以将字符串转化为浮点数,可以把 int 替换成 float 。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-18 18:54:55 | 显示全部楼层
本帖最后由 WangJS 于 2020-4-18 18:58 编辑

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

具体内容请点我
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-18 18:56:57 | 显示全部楼层
WangJS 发表于 2020-4-18 18:54
int是转换整数,你输入小数当然会报错啊

对啊 他不应该自动转换成一个整数吗?比方说输入95.6 他不应该自动转换成95吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-18 18:59:03 | 显示全部楼层
“input()”函数返回的是字符串类型,而“int()”函数只能把整数的字符串转换成整形,不能将带有小数的字符串转换成整形。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-18 18:59:42 | 显示全部楼层
改为float试试
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-18 18:59:51 | 显示全部楼层
liuxiuqing 发表于 2020-4-18 18:56
对啊 他不应该自动转换成一个整数吗?比方说输入95.6 他不应该自动转换成95吗?

你这里输入的95.6实际上是字符串类型的浮点数'95.6'
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-4-18 19:00:21 | 显示全部楼层
liuxiuqing 发表于 2020-4-18 18:56
对啊 他不应该自动转换成一个整数吗?比方说输入95.6 他不应该自动转换成95吗?

那是字符串,不能直接转换
要先float再int
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-18 19:00:56 | 显示全部楼层
liuxiuqing 发表于 2020-4-18 18:56
对啊 他不应该自动转换成一个整数吗?比方说输入95.6 他不应该自动转换成95吗?


你要想取整数位可以用地板除,栗子来了:

  1. >>> int(4.5//1)
  2. 4
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-18 19:01:22 | 显示全部楼层    本楼为最佳答案   
liuxiuqing 发表于 2020-4-18 18:56
对啊 他不应该自动转换成一个整数吗?比方说输入95.6 他不应该自动转换成95吗?

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

提示:float() 函数可以将字符串转化为浮点数,可以把 int 替换成 float 。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-18 19:05:30 | 显示全部楼层
liuxiuqing 发表于 2020-4-18 18:56
对啊 他不应该自动转换成一个整数吗?比方说输入95.6 他不应该自动转换成95吗?

用 int(eval(input("请输入你的成绩:")))
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-18 19:08:25 | 显示全部楼层
本帖最后由 WangJS 于 2020-4-18 19:10 编辑

参考结果:
  1. score = float(input("请输入你的成绩:"))
  2. score = int(score//1)
  3. if 100 >= score >= 90:
  4.     print("A")
  5. elif 90 > score >= 80:
  6.     print("B")
  7. elif 80 > score >= 70:
  8.     print("C")
  9. elif 70 > score >= 60:
  10.     print("D")
  11. elif 0 <= score < 60:
  12.     print("不及格")
  13. else:
  14.     print("成绩输入错误")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-18 19:09:01 | 显示全部楼层
可以这样:

  1. score = float(input("请输入你的成绩:"))    # 将字符串转化为浮点数
  2. if 100 >= score >= 90:
  3.     print("A")
  4. elif 90 > score >= 80:
  5.     print("B")
  6. elif 80 > score >= 70:
  7.     print("C")
  8. elif 70 > score >= 60:
  9.     print("D")
  10. elif 0 <= score < 60:
  11.     print("不及格")
  12. else:
  13.     print("成绩输入错误")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-18 19:09:38 | 显示全部楼层
斐波纳税 发表于 2020-4-18 18:59
你这里输入的95.6实际上是字符串类型的浮点数'95.6'

感谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-17 17:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表