请大神们帮我看一下为什么输入了整数依然无法跳出循环
import randomsecret = random.randint(1,10)
print("欢迎来到阿轩的程序")
temp = input("请输入你所猜测的数字,从0到10:")
while type(temp) != type(int):
print("输入不合法,请重新输入!")
temp = input("请重新输入:")
guess = int(temp)
if guess == secret:
print("猜对了,你是我脑子里的蛔虫吗!")
print("牛逼!")
else:
while guess != secret:
temp = input("错了,请重新输入!")
guess = int(temp)
if guess == secret:
print("猜对了,你是钰轩脑子里的蛔虫吗!")
print("牛逼!")
else:
if guess > secret:
print("大了大了!")
else:
print("小了小了!")
print("游戏结束!") 你看你的代码,temp是个字符串(直接用input输入的)
你这时候用type比较怎么可能一样嘛。
你应该用isdigit。 while type(temp) != type(int):
print("输入不合法,请重新输入!")
temp = input("请重新输入:")
问题出在这,temp是input函数返回的结果,一定是字符串,其类型一定不是整型。也就是无限循环。
如果我说的对,{:5_109:} 给个最佳答案呗。{:5_101:} 上面说的是对的,你可以用int(temp),强制转换成整型,捕获报错,如果报错跳出循环。 会计的会怎么念 发表于 2020-4-20 16:30
上面说的是对的,你可以用int(temp),强制转换成整型,捕获报错,如果报错跳出循环。
他应该还没学try-except吧 本帖最后由 sunrise085 于 2020-4-20 16:37 编辑
你的while循环的条件写的不对,input()输入的永远都是字符串,你用type(temp)得到的不可能是int
应该用temp.isdecimal()来判断输入的是不是数字 qiuyouzhi 发表于 2020-4-20 16:33
他应该还没学try-except吧
额。。。。。反正都是要学的! 会计的会怎么念 发表于 2020-4-20 17:55
额。。。。。反正都是要学的!
是要学,可是现在没学到
所以不能用(不会用) 本帖最后由 均昊山 于 2020-4-20 19:11 编辑
以下假设变量a为10,变量b为20:
== 等于 - 比较对象是否相等 (a == b) 返回 False。
!= 不等于 - 比较两个对象是否不相等 (a != b) 返回 true.
第一 方法改成while type(temp) == type(int): 就好了 小提示type(int)是字符串 type(int())才是int
第二方法改成int(input())小提示用户输入是数字 不是int类型可以printtype(temp) 显示字符串
其实怎么改代买逻辑有问题,后面guess = int(temp)赋值 就报错,
兄弟你参考一下 建议isdigit()方法判断用户输入
import random
secret = random.randint(1,10)
print("欢迎来到阿轩的程序")
temp = input("请输入你所猜测的数字,从0到10:")
while (temp.isdigit()) == False:
print("输入不合法,请重新输入!")
temp = input("请重新输入:")
guess = int(temp)
if guess == secret:
print("猜对了,你是我脑子里的蛔虫吗!")
print("牛逼!")
else:
while guess != secret:
temp = input("错了,请重新输入!")
guess = int(temp)
if guess == secret:
print("猜对了,你是钰轩脑子里的蛔虫吗!")
print("牛逼!")
else:
if guess > secret:
print("大了大了!")
else:
print("小了小了!")
print("游戏结束!")
qiuyouzhi 发表于 2020-4-20 17:56
是要学,可是现在没学到
所以不能用(不会用)
我都是print定位问题的~ qiuyouzhi 发表于 2020-4-20 16:17
你看你的代码,temp是个字符串(直接用input输入的)
你这时候用type比较怎么可能一样嘛。
你应该用isdig ...
感谢,明白了! 均昊山 发表于 2020-4-20 18:20
以下假设变量a为10,变量b为20:
== 等于 - 比较对象是否相等 (a == b) 返回 False。
...
感谢,大神! sunrise085 发表于 2020-4-20 16:35
你的while循环的条件写的不对,input()输入的永远都是字符串,你用type(temp)得到的不可能是int
应该用tem ...
感谢,大神! coolsummer2080 发表于 2020-4-20 16:28
问题出在这,temp是input函数返回的结果,一定是字符串,其类型一定不是整型。也就是无限循环。
如果我 ...
感谢,大神! 马钰乔布轩 发表于 2020-4-21 01:43
感谢,明白了!
那就设个最佳答案吧~
页:
[1]