我正在尝试编写一个小型Python程序,用于中学教授密码。
这是他们必须要做的正在进行的项目的一部分。
然而,在我的while循环中,我有一个if
条件,如果条件不满足,它第一次无限循环直到我中断。
while esc == False:
if guess != cipher:
print("ERROR: INCORRECT CIPHER:" + Decrypt(guess, enc))
pass
else:
esc = True
print("Correct Cipher! Decryption successful:" + Decrypt(guess, enc))
这里的密码是12,如果是输入,它会正常进行,但是任何其他输入只会给出错误消息并永远循环。
我通常来自C#/ C ++背景,我知道Python需要与其制表符和空格一致,我已经检查了几次,但我现在不知所措。
其他代码:
这样做很好,并且以同样的方式完成
while esc == False:
if CheckPassword(pw) == True:
print("Authorisation successful.")
esc = True
else:
pw = input("Password = : ")
同样问题发生的其他地方:
while esc == False:
if attempts < 1:
esc = True
GameOver()
elif x == "USERS":
print("USERS UNAVAILABLE.")
attempts = RemoveAttempt(attempts)
pass
答案 0 :(得分:5)
我不确定你还期待发生什么。如果你进入while循环后猜测是不正确的,那么它总是不正确的,因为你永远不会要求用户进行另一次猜测。请注意,在有效的版本中,else子句的新密码为input
:您不会在任何一个非工作示例中执行此操作。
(另外我觉得你可能会对pass
的作用感到困惑:它只是一个无操作,即它根本不做任何事情,并且仅在你在语法上需要一个声明但是并且#39; t想要做任何事情。在你使用它的任何一个地方都不是这样,所以你应该删除它。除非你的意思是break
,否则要打破循环? )