2016-10-30 18 views
-2

Alles links von dem, was ist, gezeigt richtig, weil ich es vorher getestet ...If-Anweisung funktioniert nicht für raw_input prompt

egal, was ich gesagt, es immer noch sagt: „Das ist nicht eine Wahl“, das ist mein Aussage sonst

1 = Auswahl1

2 = choice2

3 = auswahl3

while True: 
    choice = raw_input("->") 
    if choice == 1: 
     dochoice1 
     break 
    elif choice == 2: 
     dochoice2 
     break 
    elif choice == 3: 
     dochoice3 
     break 
    else: 
     print "That Is Not A Choice" 
     continue 
+0

also egal, was ich gesagt, sagt er noch: „das ist n ot eine Wahl "das ist meine else Aussage ... – DuckyQuack

+0

@DuckyQuack' if' nicht wiederholt, daher ist es kein Loop-Konstrukt –

Antwort

1

raw_input gibt eine Zeichenfolge, die Sie auf ganze Zahlen sind zu vergleichen, entweder konvertieren choice zu int, oder es zu bespannen vergleichen:

choice = int(raw_input("->")) 

oder:

if choice == "1": 

Wenn die etwas Benutzereingaben, die keine ist gültig int Sie die Ausnahme abfangen können:

try: 
    choice = int(raw_input("->")) 
except ValueError: 
    print "Invalid int" 
    continue 
+0

Warum nicht einfach 'input' verwenden, die ein' int' zurückgibt? –

+1

@EliSadoff Es ist eine schlechte Übung, 'input' in Python 2 zu verwenden, da es' eval' aufruft. –

+0

aber wenn ich das mache, wenn die Antwort oder Eingabe keine ganze Zahl ist, hat es einen Fehler im Code – DuckyQuack