为啥输入非整数Python会报错
"""用Python设计第一个小游戏"""temp=input("请输入这次的数学考试成绩")
guess=int(temp)
if guess == 100:
print("好棒,你离女神又近了一步")
else:
print("小子,想要幸福,就得努力") int 只能转化纯数字字符串,或者负整数字符串,不能转带其他符号的字符了
比如这里的 5.6 就带有 . 这个字符, int 转化就会报错
你可以用 float 进行转化为浮点型,这样就不会报错了
参考代码:temp = input('输入想的数字:')
guess = float(temp)
if guess == 8:
print('猜对了')
else:
print('猜错了') int是整数,你输入的85.5是小数,需要用float浮点类型 这是int函数的用法规定
传入参数分两大类:一类是其他类型的数字,例如浮点型数字,其他进制书写的数字;另一类是纯数字的字符串,当然字符串的最前面一个字符可以是正/负号
int(85.5) #传入其他类型数字,正确
int(0x2a03)#传入其他类型数字,正确
int("90") #传入纯数字字符串,正确
int('-5') #传入含有正负号的数字字符串,正确
int("85.5") #传入非纯数字的字符串,报错
int("0x2a03") #传入非纯数字的字符串,报错 sunrise085 发表于 2020-8-30 18:40
这是int函数的用法规定
传入参数分两大类:一类是其他类型的数字,例如浮点型数字,其他进制书写的数字; ...
谢谢你的回复,但还是有些不明白,请见图,同样的程序,同样输入的85和85.5显示是字符,但85却没有报错 py012345678o 发表于 2020-9-6 14:09
谢谢你的回复,但还是有些不明白,请见图,同样的程序,同样输入的85和85.5显示是字符,但85却没有报错
请认真看我在4楼的回答。
另一类是纯数字的字符串,当然字符串的最前面一个字符可以是正/负号
int()传进去的字符串只能是纯数字字符,第一位字符可以是正负号,不可以出现其他字符
你传入的字符串,"85"这个字符串是字符 '8' 和字符 '5' ,共两个字符都是数字字符;但是"85.5",这个字符串是字符 '8' ,字符 '5' ,字符 '.' ,和字符 '5' ,共四个字符,其中三个是数字字符,一个是其他字符
页:
[1]