虽然循环问题在Python中

Big*_*osh 1 python loops while-loop

我正在尝试编写一个小型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))
Run Code Online (Sandbox Code Playgroud)

这里的密码是12,如果是输入,它会正常进行,但是任何其他输入只会给出错误消息并永远循环.

我通常来自C#/ C++背景,我知道Python需要与其制表符和空格一致,我已经检查了几次,但我现在不知所措.

附加代码:

这工作正常,它以同样的方式完成

while esc == False:
    if CheckPassword(pw) == True:
        print("Authorisation successful.")
        esc = True
    else:
        pw = input("Password =  :  ")
Run Code Online (Sandbox Code Playgroud)

在同一问题发生的其他地方:

while esc == False:
    if attempts < 1:
        esc = True
        GameOver()
    elif x == "USERS":
        print("USERS UNAVAILABLE.")
        attempts = RemoveAttempt(attempts)
        pass
Run Code Online (Sandbox Code Playgroud)

Dan*_*man 5

我不确定你还有什么期待.如果你进入while循环后猜测是不正确的,那么它总是不正确的,因为你永远不会要求用户进行另一次猜测.请注意,在有效的else子句中,else子句有input一个新密码:您不会在任何一个非工作示例中执行此操作.

(另外我觉得你可能会对它的作用感到困惑pass:它只是一个无操作,即它根本不做任何事情,并且仅在你在语法上需要一个语句但不想做任何事情的情况下才有用.但事实并非如此.你使用它的任何一个地方,所以你应该将它删除.除非你的意思是break,要打破循环?)