2017-11-17 3 views
0

Ich habe keine Antwort gefunden, die meine Bedürfnisse befriedigt oder einfach genug ist, um es zu verstehen, da ich relativ neu bei Python bin!Versucht, eine Variable zu ändern, was der Benutzer eingibt

Ich habe eine Variable mit der Bezeichnung Schwierigkeit, die den Benutzer auffordert, eine Zeichenfolge einzugeben, um anzugeben, ob sie einen einfachen mittleren oder harten Modus wünschen. Leider kann ich Python nicht erfolgreich überprüfen die Eingabe für die verwendeten Wörter und gebe ihnen, was ich will, ich am Ende mit "einfach ist nicht definiert" oder "Medium ist nicht definiert" oder "hart ist nicht definiert." Gibt es eine Möglichkeit für mich, dieses Problem zu umgehen? Hier ist ein kleiner Teil meines Code, der das Problem ist eingeschlossen:

difficulty=input("What difficulty do you wish to choose, easy,medium or hard?") 
    if difficulty==easy: 
     print("You have chosen the easy mode, your test will now begin") 
     print("") 

    elif difficulty==medium: 
     print("You have chosen the medium mode, your test will now begin") 

    else: 
     print("You have chosen the hard mode or tried to be funny, your test 
     will now begin") 
+1

Sie müssen die Eingabe mit einem String vergleichen: 'if Schwierigkeit ==" easy ":' – Prune

+0

'Schwierigkeit ==" easy "'. Sie benötigen hier Zeichenfolgenliterale. –

+1

@Jan 'raw_input' wurde aus Python mit Version 3 entfernt. –

Antwort

0

Fixieren Sie zuerst Ihren Einzug (wenn es in Ihrem Beispiel kein Problem ist). Zweitens müssen Sie leicht, mittel setzen und hart in entweder einzelnen ' oder Doppel " zitiert:

difficulty=input("What difficulty do you wish to choose, easy,medium or hard?") 
if difficulty=="easy": 
    print("You have chosen the easy mode, your test will now begin") 
    print("") 

elif difficulty=="medium": 
    print("You have chosen the medium mode, your test will now begin") 

else: 
    print("You have chosen the hard mode or tried to be funny, your test 
    will now begin") 

Wenn Sie sie nicht in Anführungszeichen setzen, dann sind Sie nicht difficulty das Wort einfach zu vergleichen, sondern auf die Variable easy. Dies verursacht natürlich einen Fehler, da keine solche Variable existiert. Die Anführungszeichen sagen jedoch, dass Python einfach als String interpretiert werden soll.

1

Sie versuchen, eine Zeichenfolge von dem Benutzer zu erhalten (input einen String zurück), dann es in diesem Fall zu einem anderen String vergleichen 'easy' oder 'medium'. Here is a link to Ein Google-Artikel über einige der grundlegenden Dinge, die Sie tun können, um Strings in Python.

difficulty = input("What difficulty do you wish to choose, easy,medium or hard?") 
if difficulty == 'easy': 
    print("You have chosen the easy mode, your test will now begin") 
    print("") 

elif difficulty == 'medium': 
    print("You have chosen the medium mode, your test will now begin") 

else: 
    print("You have chosen the hard mode or tried to be funny, your test will now begin") 

Wenn Sie easy oder medium in Ihrem Code setzen Sie Python sagen, dass sie Variablen (link to python variable tutorial) keine Strings. In diesem Fall haben Sie die easy Variable noch nicht definiert, dh: easy = 'some data'. Weil Sie es nicht definiert haben, weiß Python nicht, was mit easy zu tun ist, wird es einen Fehler werfen.

Verwandte Themen