簡體   English   中英

Python中的While循環問題

[英]While loop issues in Python

我正在嘗試編寫一個小的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

我不確定您還會發生什么。 一旦進入while循環,如果猜想是不正確的,它將永遠是不正確的,因為您從不要求用戶進行其他猜測。 請注意,在一個有效的代碼中,else子句input了一個新密碼:在兩個無效的示例中都沒有這樣做。

(此外,我認為您可能會對pass做法感到困惑:這只是一個無操作,即根本不執行任何操作,並且僅在您語法上需要聲明但又不想做任何事情時才有用。情況並非如此。在任何你使用它,所以你應該將其刪除。除非你或許意味着地方的break而是打出來的循環?)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM