我用Python编写了一个登录安全程序,这个部分总是陷入无限循环。如果你被锁在外面,它会一直说“你已经被锁在外面10秒了”,它会无限循环。我怎么解决这个问题?在
tries=0
while finalusername!=username or finalpassword!=password:
tries=tries+1
print "That incorrect. Try again."
print "You have", 5-tries, "tries left."
finalusername= raw_input ("Username:")
finalpassword= raw_input ("Password:")
while tries>=4:
print "You have been locked out for 10 seconds. Please call the administrator if this keeps happening."
sleep (10.0)
system ('CLS')
finalusername!=username
finalpassword!=password
简单,换一下
到
^{pr2}$如果你遵循你的代码,当你进入第二个while循环时,变量的值永远不会改变,所以你将永远呆在那里。如果将while更改为If,则将执行If语句的主体,然后继续循环。在
当
tries
大于4时,第二个while
循环激活,但循环本身从不对tries
进行操作或包含任何其他退出条件。这就是为什么它变得无限。因此tries
保持在4以上,循环从未停止。在从你的代码来看,在我看来,当他们用尽了他们的尝试,他们会被锁定10秒,然后他们可以重新开始?如果是这样,您希望像这样调整代码:
我认为你应该在睡眠后将尝试设置为0,如果没有必要,可以设置循环。睡眠后,用户应再次尝试5次。在
相关问题 更多 >
编程相关推荐