2016-03-23 12 views
0

Es heißt in Python 2.7 Dokumente, die or hat niedrigere Priorität als and. Aber wenn ich im Idle dieses Typ:Ich verstehe nicht Operator Vorrang in Python True und False oder True

>>> True and True or False 
True 
>>> True and False or True 
True 
>>> True and False 
False 

Warum ist das Ergebnis dieser True and False or True Ausdruck True?

+3

Weil ... so funktioniert 'oder'? ('oder True' ist immer' True') – miradulo

+0

In diesem Fall ist die Priorität ohne Klammern die gleiche, also werden Werte von links nach rechts ausgewertet, 'True und False oder True' =' (True und False) oder True '=' False oder True' = 'True'. –

+0

Ich hatte ein paar Aussagen in "Wenn" -Klausel mit einigen "Nicht" -Operatoren und machte einige Fehler. Wie lösche ich eine Frage? :) Und danke für die Antworten. –

Antwort

0

Höchste Priorität bedeutet, in dem Sie die Klammern gesetzt werden

((True and True) or False) # True 
((True and False) or True) # True 
(True and False)   # False 
2

höhere Priorität bedeutet, dass ein Bediener vor einem Operator mit niedriger Priorität bewertet werden würde, wie beispielsweise in der Arithmetik, Multiplikation vor der Zugabe ausgewertet soll, so 1 + 2 * 3 wird 7 und nicht 9 ergeben.

In Ihrem Anwendungsfall wird zuerst True and False ausgewertet, was False ergibt. Dieses Ergebnis wird dann mit dem Operator or (d. H. False or True) ausgewertet, was zu True führt.

1

In der Tat, Operator Vorrang hat nichts mit diesem Ergebnis zu tun; Es ist dasselbe, wo immer Sie die Klammern setzen, da or immer True zurückgibt, wenn eines der Argumente zutrifft. Also:

True and (False or True) == True and (True) == True 
(True and False) or True == (False) or True == True 
1

Du Anweisung fragt den folgenden

Ersten Python zu tun, wird der Ausdruck auf der linken Seite;

Bewertung 1: Wahre und falsche (Da dies zu falschen Python wertet schaut dann auf die oder den Ausdruck)

Bewertung 2: Wahr oder falsch

Welche true

wertet dann können Sie auch Ich möchte einen Blick auf Boolesche Logik- und Wahrheitstabellen werfen, um zu verstehen, wie das funktioniert.