15210853819 发表于 2020-9-16 20:53:36

python入门05课,为什么把guess赋值放在上面就显示赋值错误呀

如图,为什么guess=int(temp)放到下面,不能跟temp=int("请输入甜甜心里想的数字")一起呀

baige 发表于 2020-9-16 20:59:57

你输入5.5,又不是整数,你还把它转换为int类型

疾风怪盗 发表于 2020-9-16 21:01:25

你这是相当于用int()转化字符串5.5,下面这样的代码就会报错
print(int('5.5'))
和你放在哪无关的吧

疾风怪盗 发表于 2020-9-16 21:03:21

print('5.5'.isdigit())
再看这个,结果是Flase
你放在这个判断里,说明已经帮你过滤掉了这种字符串5.5的情况

Ida_c 发表于 2020-9-16 21:08:07

1.int表示整型,5.5是浮点数,应该使用float。或者你应该输入整数。
2.可以写在一起,
temp=int(input("请输入甜甜心里想的数字"))

15210853819 发表于 2020-9-16 21:09:36

疾风怪盗 发表于 2020-9-16 21:01
你这是相当于用int()转化字符串5.5,下面这样的代码就会报错

和你放在哪无关的吧

有关的,放在if temp.isdigit():下面,就不会报错。

疾风怪盗 发表于 2020-9-16 21:10:42

Ida_c 发表于 2020-9-16 21:08
1.int表示整型,5.5是浮点数,应该使用float。或者你应该输入整数。
2.可以写在一起,
temp=int(input(" ...

你这样理解不对的,input接收的是字符串,int()强制转换字符串的5.5,是会报错的,你这样写,容易报错
所以代码里有个isdigit()来判断是不是全数字(不要小数点)

15210853819 发表于 2020-9-16 21:11:28

疾风怪盗 发表于 2020-9-16 21:03
再看这个,结果是Flase
你放在这个判断里,说明已经帮你过滤掉了这种字符串5.5的情况

我好像有一点明白了,就是说放在下面的话,这个guess就会在if temp.isdigit():指令下执行,如果在上面的话,因为还没有进行if temp.isdigit():的循环,所以会报错。

疾风怪盗 发表于 2020-9-16 21:12:28

15210853819 发表于 2020-9-16 21:11
我好像有一点明白了,就是说放在下面的话,这个guess就会在if temp.isdigit():指令下执行,如果在上面的 ...

对,相当于帮你过滤掉了报错的可能,也过滤掉了输入非数字的情况
单独这句拉出来你打印看下就知道了,会报错的

15210853819 发表于 2020-9-16 21:17:06

疾风怪盗 发表于 2020-9-16 21:12
对,相当于帮你过滤掉了报错的可能,也过滤掉了输入非数字的情况
单独这句拉出来你打印看下就知道了, ...

好哒~谢谢!

cjt880 发表于 2020-9-20 11:21:54

🆗。谢谢啦
页: [1]
查看完整版本: python入门05课,为什么把guess赋值放在上面就显示赋值错误呀