2016-11-21 1 views
0
from random import randint 

isRunning =True 

while isRunning: 
    dice1 = randint(1,7) 
    dice2 = randint(1,7) 
    print("The first die landed on ℅d and the second landed on ℅d." ℅ (dice1,dice2)) 
    user_input = input("Contiue? Yes or No?\n>") 

    if user_input == "Yes" or "yes": 
     print("="*16) 

    elif user_input == "No" or "no": 
     isRunning = False 

Ich fühle mich wie mache ich so einen einfachen Fehler und wenn ich beschlossen, in globale Variablen zu suchen und was nicht immer noch nicht hilft. Könnte jemand erklären, warum die while-Schleife nicht beendet wird, obwohl die Variable auf false gesetzt wurde.Scopes in While-Schleifen

+0

Überprüfen Sie Ihre Einrückung. Es sieht so aus, als ob alles von "user_input =" down anders eingerückt ist als die 3 Zeilen darüber. Python muss eingerückt werden, damit es in jeder Zeile 100% identisch ist. (Obwohl dies beim Veröffentlichen nur ein Problem mit der Umsetzung sein könnte) –

+0

Mögliches Duplikat von [Wie prüfe ich eine Variable anhand mehrerer Werte?] (Http://stackoverflow.com/questions/15112125/how-do-i-test-one -Variable-gegen-Mehrfach-Werte) – TigerhawkT3

Antwort

-1

if user_input== "Yes" or "yes" sollte

if user_input== "Yes" or user_input =="yes", sein alternativ ist es

Ihre Original if any(user_input==keyword for keyword in["Yes", "yes"]): gleichwertig, wenn Klausel Splitting if user_input=="Yes" oder if "yes" und if "yes" immer wahr ist, also Ihre if-elseif-Klausel gehen immer zu, wenn Klausel.

+0

Danke, Das hat mein Problem behoben. – Don

+0

Weiß nicht wie, leider. – Don

+0

Warten Sie 4 Minuten. – Don