鱼C论坛

 找回密码
 立即注册
查看: 1773|回复: 4

关于0基础教学中的第一个小游戏

[复制链接]
发表于 2017-2-1 15:07:47 | 显示全部楼层 |阅读模式
2鱼币
今天回头看了下第一个小游戏以及其改进,发现一个问题
int()这个函数可以把其它的数据类型转变为整数,在shell中
>>>int(9.2)
也会返回一个整数9
但在第一个小游戏中最开始也有这样语句
>>>temp = input('请输入一个数字:')
>>>guess = int(temp)
我理解是这里的变量temp不管是什么类型,只要能转换为整数的,在第二句话中都会变成先变为整数再赋值给guess
但实际上,在运行时,如果填入9.2就会有以下提示
Traceback (most recent call last):
  File "C:\python\4.0.py", line 5, in <module>
    guess = int(temp)
ValueError: invalid literal for int() with base 10: '9.3'

我想问问这是什么原因

最佳答案

查看完整内容

先看看这个例子: int()可以把一个浮点数转换为整数,也可以把一个字符串形式的整数转换为整数,但不能把字符串型式的浮点数转换为整数。 变通一点的方法:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-1 15:07:48 | 显示全部楼层
先看看这个例子:
  1. >>> int(9.2)
  2. 9
  3. >>> int('9.2')
  4. Traceback (most recent call last):
  5.   File "<pyshell#10>", line 1, in <module>
  6.     int('9.2')
  7. ValueError: invalid literal for int() with base 10: '9.2'
复制代码


int()可以把一个浮点数转换为整数,也可以把一个字符串形式的整数转换为整数,但不能把字符串型式的浮点数转换为整数。
变通一点的方法:
  1. >>> int(float('9.2'))
  2. 9
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-2-1 16:56:08 | 显示全部楼层
冬雪雪冬 发表于 2017-2-1 16:30
先看看这个例子:

明白了!谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-1 17:46:54 | 显示全部楼层
长知识了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-6 07:16:17 | 显示全部楼层
厉害了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 09:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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