虽然循环问题在Python中

时间:2014-10-13 11:30:06

标签: 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))

这里的密码是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

1 个答案:

答案 0 :(得分:5)

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

(另外我觉得你可能会对pass的作用感到困惑:它只是一个无操作,即它根本不做任何事情,并且仅在你在语法上需要一个声明但是并且#39; t想要做任何事情。在你使用它的任何一个地方都不是这样,所以你应该删除它。除非你的意思是break,否则要打破循环? )