int函数的问题
代码:print("HELLO?")
temp=input("嘻嘻!")
guess=int(temp)
if guess==8:
print("OMG !")
print("哈哈哈")
else:
print("不是啦")
print("好啦,不玩了")
问题:
int函数不是可以把小数转变成整数吗?我输入8.3,按道理应该转变成8赋值给guess,为什么运行出错?
运行过程如下:
HELLO?
嘻嘻!8.3
Traceback (most recent call last):
File "d:/我的文档/桌面/02文字游戏.py", line 3, in <module>
guess=int(temp)
ValueError: invalid literal for int() with base 10: '8.3'
谢谢大家帮助~
本帖最后由 sunrise085 于 2020-9-26 18:41 编辑
nput的返回值都是字符串,你输入8.3 得到的temp是 '8.3'
int只能转换纯数字的字符串,而temp中除了数字以外还有一个点,所以就出错了
int('12')#纯数字字符串,可以
int(8.3)#浮点数,可以
int('8.3')#含有小数点的字符串,不可以 本帖最后由 hrp 于 2020-9-26 18:56 编辑
如楼上大佬所说的,int 只能将数字、纯数字字符串转换成整数,而input得到的永远是字符串,所以你输入8.3实际得到的是 '8.3' 字符串,这个字符串不是纯数字字符串,所以出错了。
要解决也简单,先用 float 函数将输入的字符串转换成浮点数(float函数可以将带点的数字字符串转换成浮点数),再用 int 函数将数字转换成整数即可。代码:
print("HELLO?")
temp=input("嘻嘻!")
guess=int(float(temp))
if guess==8:
print("OMG !")
print("哈哈哈")
else:
print("不是啦")
print("好啦,不玩了") 我也有同样的问题,谢谢解答 sunrise085 发表于 2020-9-26 18:40
nput的返回值都是字符串,你输入8.3 得到的temp是 '8.3'
int只能转换纯数字的字符串,而temp中除了数字以外 ...
谢谢老师,我明白了~ hrp 发表于 2020-9-26 18:54
如楼上大佬所说的,int 只能将数字、纯数字字符串转换成整数,而input得到的永远是字符串,所以你输入8.3实 ...
谢谢鱼友~辛苦了~ 见招拆招小冬喜 发表于 2020-9-26 20:42
谢谢老师,我明白了~
那就给个最佳答案吧
页:
[1]