2017-04-20 65 views
0

我目前正在發明自己的電腦遊戲和我在第10章(劊子手遊戲)。我無法使用while循環設置難度。目前它甚至不在我的while循環中打印語句。如果我把它改成難度!='':我可以打印聲明並接受我的輸入,但它仍然不會改變難度。這裏是代碼:Python的while語句通過鋁Sweigart的設置難度劊子手遊戲

difficulty = '' 
while difficulty not in 'EMH': 
    print("Enter difficulty: E - easy, M - medium, H - hard.") 
    difficulty = input().upper() 
if difficulty == 'M': 
    del HANGMAN_ART[8] 
    del HANGMAN_ART[7] 
if difficulty == 'H': 
    del HANGMAN_ART[8] 
    del HANGMAN_ART[7] 
    del HANGMAN_ART[5] 
    del HANGMAN_ART[3] 

感謝您的幫助。

+3

你可能想'輸入()。上()' – iafisher

+1

它沒有正確縮進在anystring'''與 –

+1

''' '開始' 計算結果爲真也。 – Anis

回答

2

有兩個問題與while循環,你需要修復。首先,它從來沒有在第一個地方運行,因爲'' not in 'EMH'最初評估爲False。第二個是你設置difficultyinput().upper而不是input().upper()。下面是一個示例修復:由於Jared Goguen在註釋中指出,您也可以保持相同的循環條件,但更改初始輸入。

difficulty = 'invalid_input' 
while difficulty not in 'EMH': 
    ... 
+0

謝謝!瞭解。 – Ozixic

+1

我不認爲我同意改變循環的條件並使用'break'。保持原始狀態並將'難點'的初始化更新爲'難度='invalid_input''可能會更好。 –

+0

@JaredGoguen這是另一個完全合理的解決方案。 – iafisher