求助
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")while type(temp) != type(1):
print("抱歉,输入不合法,", end='')
temp = input("请输入一个整数:")
在这里 input接受用户输入不都是转换成字符串类型吗
为什么下面的type判断的变量不用转换为整数 ? 严格上是需要转换成整数的,但是如果你自行测试的时候,内心一直是按照整数去输入的,也不会出现什么问题。不过为了程序的健壮性,建议加上转int 热气球 发表于 2020-5-27 23:54
严格上是需要转换成整数的,但是如果你自行测试的时候,内心一直是按照整数去输入的,也不会出现什么问题。 ...
你说的我知道我想知道为什么type这里判断不用转换为整数
是不是因为这个type本身就可以识别字符串还是整数 小诺爷 发表于 2020-5-27 23:59
你说的我知道我想知道为什么type这里判断不用转换为整数
是不是因为这个type本身就可以识别字符串还是 ...
在这里 input接受用户输入不都是转换成字符串类型吗
对的,input接受用户输入转化为字符串
为什么下面的type判断的变量不用转换为整数 ?不知道为什么?我也想问这完全没有意义,这个是个死循环,在这个代码基础上 ,type(temp) 永远不可能等于 type(1) Twilight6 发表于 2020-5-28 00:02
对的,input接受用户输入转化为字符串
不知道为什么?我也想问这完全没有意义,这个是个死循环,在 ...
我感觉应该是type本身就可以识别吧
或许也就能这样理解了 小诺爷 发表于 2020-5-28 00:10
我感觉应该是type本身就可以识别吧
或许也就能这样理解了
type 识别你这代码的temp,永远为str字符串,不可能为 int整型 小诺爷 发表于 2020-5-28 00:10
我感觉应该是type本身就可以识别吧
或许也就能这样理解了
这个代码完全就是死循环 小诺爷 发表于 2020-5-28 00:10
我感觉应该是type本身就可以识别吧
或许也就能这样理解了
你别把错误的答案拿去硬着头皮理解...自己误导自己最致命 小诺爷 发表于 2020-5-27 23:59
你说的我知道我想知道为什么type这里判断不用转换为整数
是不是因为这个type本身就可以识别字符串还是 ...
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
while type(temp) != type(1):
print("抱歉,输入不合法,", end='')
temp = input("请输入一个整数:")
temp作为input的返回数据是字符串类型是
type()函数的作用不就是获取数据的类型么?
type(temp)==<class 'str'>
type(1)==<class 'int'>
<class 'int'> !=<class 'str'> 两个类型是可以比较的吧
while type(temp) != type(1) 这个就是在判断二者的类型是否一致
小诺爷 发表于 2020-5-28 00:10
我感觉应该是type本身就可以识别吧
或许也就能这样理解了
本身不能识别啊,那个大佬都说了,type识别temp永远为字符串...好死脑筋呀{:10_284:} 通过input输入的的确都是字符串形式,因此你这个
while type(temp) != type(1):
print("抱歉,输入不合法,", end='')
temp = input("请输入一个整数:")
里面的type(temp)永远都不会等于type(1)。。。这个就是个死循环
你需要在input前面再加个int 本帖最后由 xiaosi4081 于 2020-6-2 16:19 编辑
temp = int(input("不妨猜一下小甲鱼现在心里想的是哪个数字:"))
while type(temp) != type(1):
print("抱歉,输入不合法,", end='')
temp = int(input("请输入一个整数:")) 是这样的,大哥,你的这个答案本来就是错误的,你再去认真看看小甲鱼的课后作业
出处为小甲鱼课后作业旧版第5讲动动手0题。以下是全文。
0. 针对视频中小甲鱼提到的小漏洞,再次改进我们的小游戏:当用户输入错误类型的时候,及时提醒用户重新输入,防止程序崩溃。
如果你尝试过以下做法,请举下小手:
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
# 这种想法是因为 type(1) 会返回 <class 'int'>,如果 type(temp) 返回结果一致说明输入是整数。
while type(temp) != type(1):
print("抱歉,输入不合法,", end='')
temp = input("请输入一个整数:")
或者可能这样:
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
# not操作符的作用是将布尔类型的结果翻转:即取反的意思,not True == Flase
while not isinstance(temp, int):
print("抱歉,输入不合法,", end='')
temp = input("请输入一个整数:")
以上方法的思路是正确的,不过似乎忽略了一点儿:就是 input() 的返回值始终是字符串,所以 type(temp) 永远是 <class 'str'>!
看清楚了没有,这本来就是错误示范,这个代码本来就是有问题的,有错误的,有漏洞的,
这是小甲鱼特意拿出来给你讲解它错在哪里的示范,本来就不是正确的,你干嘛要去想尽一切办法来解释它是对的,不要曲解小甲鱼的意思。
小甲鱼的意思就一句话,temp永远都是str格式,所以,这个代码type永远返回的都是
<class 'str'>。而不是你说的"我感觉应该是type本身就可以识别吧,或许也就能这样理解了".
认真地对待知识,细心点。
页:
[1]