Reihenfolge von Verknüpfungen von Bedingungen in Python?

3 Antworten

And hat in Python die höhere Präzedenz.

Das heißt, es wird wie folgt ausgewertet:

if (v1==1 and v2==2) or v3==3

Wenn v_1 == 1 und v2 == 2 beide wahr sind, dann wird die gesamte Bedingung wahr, unabhängig von v3.

Wenn entweder v_1 != 1 oder v2 != 2, dann hängt das Ergebnis der gesamten Bedingung von v3 == 3 ab.

Ich hoffe, dass das halbwegs verständlich erklärt ist.

Woher ich das weiß:eigene Erfahrung – Ich habe schon mal einen PC gestartet

Geprüft wird alles gleichzeitig die Frage ist was stärker bindet. In diesem Fall das and und danach das or.

And ist wie Punktrechnung und or wie Strichrechnung

Wie wird das dann geprüft bzw. was ist die Regel? Erst das and oder das or?

and wird vor or ausgewertet.

https://docs.python.org/3/reference/expressions.html#operator-precedence

willst du dieses Verhalten beeinflussen, kannst du Klammern nutzen:

a and b or c
# Wahr, wenn a und b wahr ist oder c wahr ist

a and (b or c) 
# wahr, wenn a wahr ist und b oder c wahr sind
Woher ich das weiß:Studium / Ausbildung – Abgeschlossenes Studium der Informatik (B.Sc.)