2017-04-20 3 views
0

Ich arbeite derzeit durch Al Sweigart erfinden Ihre eigenen Computerspiele und bin auf Kapitel 10 (The Hangman Game). Ich kann den Schwierigkeitsgrad nicht mit einer While-Schleife festlegen. Derzeit druckt es nicht einmal die Anweisung unter meiner while-Schleife. Wenn ich es zu while Schwierigkeit ändere! = '': Ich kann es bekommen, um die Aussage zu drucken und meine Eingabe zu akzeptieren, aber es ändert immer noch nicht die Schwierigkeit. Hier ist der Code:Python während Anweisung Einstellung Schwierigkeit für Hangman Spiel

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] 

Vielen Dank für Ihre Hilfe.

+3

Sie wollen wahrscheinlich 'Eingang(). Obere()' – iafisher

+1

es nicht richtig eingezogen ist mit –

+1

'' ' '' in anystring''' wertet auf True auch zu beginnen. – Anis

Antwort

2

Es gibt zwei Probleme mit Ihrer while Schleife, die Sie beheben müssen. Die erste ist, dass es nie an erster Stelle ausgeführt wird, weil '' not in 'EMH' zunächst False auswertet. Der zweite ist, dass Sie difficulty auf input().upper statt input().upper() setzen. Hier ist ein Beispiel fix:

difficulty = '' 
while True: 
    print("Enter difficulty: E - easy, M - medium, H - hard.") 
    difficulty = input().upper() 
    if difficulty in 'EMH': 
     break 

Als Jared Goguen in den Kommentaren erwähnt, können Sie auch die gleiche Schleife Zustand halten, aber die anfängliche Eingabe ändern.

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

Vielen Dank! Verstanden. – Ozixic

+1

Ich glaube nicht, dass ich damit einverstanden bin, den Zustand der Schleife zu ändern und 'break' zu verwenden. Es könnte besser sein, den ursprünglichen Zustand beizubehalten und die Initialisierung von "Schwierigkeit" zu "Schwierigkeit = 'ungültiger_Eingang" zu aktualisieren. –

+0

@JaredGoguen Das ist eine andere vollkommen vernünftige Lösung. – iafisher

Verwandte Themen