Problem mit if-Anweisung in Kombination mit or

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Ovaron
User
Beiträge: 8
Registriert: Montag 15. Juni 2009, 09:29

Hi!

Irgendwie steh ich grad auf der Leitung. Ich bekomm es nicht hin, dass ich bei einer IF-Anweisung auf mehrere Parameter verknüpft mit "or" abfrage.

Beispiel:

Code: Alles auswählen

input = 'Kunz'
if input == 'YES' or 'NO':
    print 'ja'
gibt mir immer ja aus. Wie schaffe ich, das hier korrekt abgefragt wird?
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

es müßte lauten:

Code: Alles auswählen

if input == "Yes" or input == "No":
"NO" ist nämlich wahr. Einfach weil es nicht zu 'False' oder 'None' ausgewertet wird.

Noch was: Da 'input' eine eingebaute Funktion von Python ist, solltest du die Variable lieber anders benennen, um diese nicht zu überschreiben.

Edit:

Noch mal dein obiger Code, nur mit den Regeln entsprechenden Klammern:

Code: Alles auswählen

if (input == "Yes") or ("No"): 
Vielleicht wird es dadurch etwas klarer.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Pythonisch:

Code: Alles auswählen

if answer in ("YES", "NO"):
...
Zu Pekhs Nachtrag: Das verdeutlicht den Ablauf, aber Klammern in `if`-clauses zu verwenden fuehrt zu unerwartetem Verhalten, deshalb sollte man solchen Code nicht schreiben.
Ovaron
User
Beiträge: 8
Registriert: Montag 15. Juni 2009, 09:29

Herzlichen Dank euch beiden, hat mir sehr geholfen :)
Antworten