'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
Benutzeravatar
StefanLawl
User
Beiträge: 92
Registriert: Donnerstag 7. Juni 2012, 20:23

Hallo, es scheint als würde ich das erste Mal 'or' benutzen, denn ich verstehe folgende Codes nicht:

Code: Alles auswählen

('a' or 'b') in 'b'
>>False

Code: Alles auswählen

('a' or 'b') in 'a'
>>True

Code: Alles auswählen

'a' or 'b' in 'c'
>>'a'

Code: Alles auswählen

if 'a' or 'b' in 'c':
    print 'ja'
else:
    print 'no'
>>'ja'

Erstaunlich, wie es beim 1. und 2. Beispiel davon abhängt, an welcher Stelle sich 'a' und 'b' befinden.

Ganz verstanden habe ich or offensichtlich nicht. :K Kann mir jemand die einzelnen Beispiel bzw. deren 'Wirkung' erklären?
Zuletzt geändert von StefanLawl am Dienstag 9. Juli 2013, 14:54, insgesamt 1-mal geändert.
Man sagt uns wir sollen der Idee gedenken und nicht des Mannes. Denn ein Mensch kann versagen. Er kann gefangen werden. Er kann getötet und vergessen werden. Aber 400 Jahre später kann eine Idee immer noch die Welt verändern.
-V
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@StefanLawl: Bei »or« werden die Operanden so lange ausgewertet bis der Operand »wahr« ist. Also 'a' or irgendwas gibt 'a'. Damit müßtest Du alle Deine Fälle erklären können.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Sirius3 hat geschrieben:Damit müßtest Du alle Deine Fälle erklären können.
Ich wuerde noch dazuwerfen, dass `in` staerker bindet als `or`. Aber dann sollte man sich wirklich alle Faelle erklaeren koennen.
Malachite
User
Beiträge: 34
Registriert: Sonntag 24. Juni 2012, 13:43
Wohnort: Berlin

Ich glaube, du verstehst die booleschen Operatoren falsch. Was du umzusetzen versuchst ist die Frage "Ist a oder b in c?". Tatsächlich fragst du aber "Ist a, b oder beide = True, und ist das erste Objekt, das True ist, in c?" bzw. bei den Statements ohne Klammern "Ist a = True, oder b in c (oder beides)?".

So geht es richtig:

Code: Alles auswählen

>>> 'a' in 'c' or 'b' in 'c'
False
Benutzeravatar
StefanLawl
User
Beiträge: 92
Registriert: Donnerstag 7. Juni 2012, 20:23

Danke für die Antworten :) Hab es jetzt verstanden
Man sagt uns wir sollen der Idee gedenken und nicht des Mannes. Denn ein Mensch kann versagen. Er kann gefangen werden. Er kann getötet und vergessen werden. Aber 400 Jahre später kann eine Idee immer noch die Welt verändern.
-V
Antworten