[英]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.