鱼C论坛

 找回密码
 立即注册
查看: 3094|回复: 16

第2课里程序运行出错

[复制链接]
发表于 2015-4-14 11:29:02 | 显示全部楼层 |阅读模式

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

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

x
print('------------------我爱鱼C工作室------------------')
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
guess = int(temp)
if guess == 8:
    print("我草,你是小甲鱼心里的蛔虫吗?!")
    print("哼,猜中了也没有奖励!")
else:
    print("猜错拉,小甲鱼现在心里想的是8!")
print("游戏结束,不玩啦^_^")
"""这是注释"""

如果输入的是浮点数例如输入2.5就会出现以下的错误,请问各位怎么解决??????
>>>
------------------我爱鱼C工作室------------------
不妨猜一下小甲鱼现在心里想的是哪个数字:2.5
Traceback (most recent call last):
  File "D:/Python34/12.py", line 3, in <module>
    guess = int(temp)
ValueError: invalid literal for int() with base 10: '2.5'
>>>
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-4-14 11:44:24 | 显示全部楼层
guess = int(temp)
这一句int规定了输入数字为整形
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-14 14:04:09 | 显示全部楼层
guess = int(float(temp))
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-14 16:52:25 | 显示全部楼层
优派 发表于 2015-4-14 11:44
guess = int(temp)
这一句int规定了输入数字为整形

我以为int这个函数是无论用户输入什么数字,都会将用户输入的数值转为整形。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-14 17:16:28 | 显示全部楼层
wei_Y 发表于 2015-4-14 14:04
guess = int(float(temp))

加了个float浮点函数这样出来的还是浮点数呀,int整数函数有什么用呢?它不是将小数点后的数去掉吗?例如输入2.6,输出2这样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-14 17:50:51 | 显示全部楼层
e2018 发表于 2015-4-14 17:16
加了个float浮点函数这样出来的还是浮点数呀,int整数函数有什么用呢?它不是将小数点后的数去掉吗?例如 ...

字符串的话int只识别全是整数的情况(同进制下)。浮点数会舍去小数点后面(非四舍五入。)。
float可以识别字符串中的整数(结果会加上.0),也可以识别小数。
所以先float把它转换成小数,在用int取整。
话说你测试的int(float())出来的还是小数?我这里是整数。
  1. >>> int(float('1.2'))
  2. 1
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-14 19:49:07 | 显示全部楼层
e2018 发表于 2015-4-14 17:16
加了个float浮点函数这样出来的还是浮点数呀,int整数函数有什么用呢?它不是将小数点后的数去掉吗?例如 ...

1、temp这个变量中存储的是你存放的字符串"2.5",
2、int()函数可以把字符串和float类型的变量变为整形,其中对float类型变量的作法就是截断,也就是你说的把小数点后的部分去掉,
3、当你直接调用int()函数时,它发现这个字符串里所放的是一个浮点数,所以报错,所以这里wei_Y版主用float()函数将temp这个字符串转化为float型的变量,然后又将float类型的变量用int()函数转化为整形,即作截断处理,这样做的好处是,当你输入整形变量时它和int(temp)的效果一样,而在你输入浮点数时,它能作到楼主所要求的无论什么数字,都将用户输入数值转化为整形
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2015-4-14 20:52:06 | 显示全部楼层
哦明白,谢谢各位的解答!!!:lol:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-19 21:09:18 | 显示全部楼层
学习了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-21 02:00:50 | 显示全部楼层
签到,回帖赚鱼币
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-21 02:01:59 | 显示全部楼层
签到,回帖赚鱼币
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-21 02:07:38 | 显示全部楼层
签到,回帖赚鱼币
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-21 08:38:40 | 显示全部楼层
学习了,原来敲的时候还没注意到,谢谢。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-21 09:25:38 | 显示全部楼层
guess = float(temp)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-21 09:26:23 | 显示全部楼层
怎么样才能赚鱼币……………………
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-29 19:38:12 | 显示全部楼层
>>> temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
不妨猜一下小甲鱼现在心里想的是哪个数字:2.5
>>> temp
'2.5'
>>> float(temp)
2.5

我刚开始看也觉得你这个为什么报错呢,原来int只识别全是整数的字符串和浮点数,刚开始看版主说的也不怎么懂,动手操作一下也明白了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-30 02:08:50 From FishC Mobile | 显示全部楼层
路过,顶一下!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-15 14:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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