Seite 1 von 1

Problem mit if-Anweisung in Kombination mit or

Verfasst: Donnerstag 9. Juli 2009, 11:30
von Ovaron
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?

Verfasst: Donnerstag 9. Juli 2009, 11:34
von Pekh
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.

Verfasst: Donnerstag 9. Juli 2009, 12:11
von cofi
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.

Verfasst: Donnerstag 9. Juli 2009, 13:21
von Ovaron
Herzlichen Dank euch beiden, hat mir sehr geholfen :)