我的代码要求用户输入一个数字,如果该数字是整数且小于20,则完成,否则应打印“错误,重试”,然后让我们重试,但它只是失控,打印消息而没有结束
good1 = False
while not good1:
storage = input("A number")
try:
int(storage)
good1 = True
good2 = False
while not good2:
if int(storage) > 20:
print("Error, try again.")
else:
print("--")
except ValueError:
print("Error, try again.")
3条答案
按热度按时间q3qa4bjr1#
你可能会寻找这样的东西:
xzv2uavs2#
您从未更改
good2
的值,因此它始终为真并继续打印。尝试跳出内部循环。另外,请注意,您已经将
good1
set设置为True
,所以现在即使它大于20也是好的,如果它大于20,您需要将其设置为False
,以使程序再次要求输入新的数字。代码应如下所示krugob8w3#
那是因为你
这个语句会一直运行下去,因为你基本上是在说while true,检查int是否〉= 20,如果是的话,post error else post“--",然后if语句会一直运行,因为good 2从来没有变成false(或者说,true是因为NOT good 2)