是这样的,大哥,你的这个答案本来就是错误的,你再去认真看看小甲鱼的课后作业
出处为小甲鱼课后作业旧版第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本身就可以识别吧,或许也就能这样理解了".
认真地对待知识,细心点。