Suche…


Einführung

Python-Operatoren haben eine bestimmte Rangfolge , die bestimmt, welche Operatoren in einem möglicherweise mehrdeutigen Ausdruck zuerst ausgewertet werden. In dem Ausdruck 3 * 2 + 7 wird zum Beispiel zuerst 3 mit 2 multipliziert, und das Ergebnis wird zu 7 addiert, wodurch sich 13 ergibt. Der Ausdruck wird nicht umgekehrt ausgewertet, da * eine höhere Priorität als + hat.

Nachfolgend finden Sie eine Liste der Operatoren nach Prioritäten und eine kurze Beschreibung ihrer (normalerweise) Vorgänge.

Bemerkungen

Aus der Python-Dokumentation:

In der folgenden Tabelle werden die Operatorvorrangstufen in Python zusammengefasst, von der niedrigsten Priorität (geringste Bindung) bis zur höchsten Priorität (meist Bindung). Operatoren in derselben Box haben die gleiche Priorität. Wenn die Syntax nicht explizit angegeben ist, sind Operatoren binär. Operatoren in derselben Boxgruppe von links nach rechts (außer für Vergleiche, einschließlich Tests, die alle dieselbe Priorität und Kette von links nach rechts haben und die Potenzierung von rechts nach links gruppiert)

Operator Beschreibung
Lambda Lambda-Ausdruck
ansonsten Bedingter Ausdruck
oder Boolesches ODER
und Boolean AND
nicht x Boolean NICHT
in, nicht in, ist, ist nicht, <, <=,>,> =, <>,! =, == Vergleiche, einschließlich Mitgliedschaftstests und Identitätstests
| Bitweises ODER
^ Bitweises XOR
& Bitweises AND
<<, >> Verschiebungen
+, - Addition und Subtraktion
*, /, //,% Multiplikation, Division, Rest [8]
+ x, -x, ~ x Positiv, negativ, bitweise NICHT
** Potenzierung [9]
x [index], x [index: index], x (Argumente ...), x.attribute Abonnement, Slicing, Aufruf, Attributreferenz
(Ausdrücke ...), [Ausdrücke ...], {Schlüssel: Wert ...}, Ausdrücke ... Bindungs- oder Tupelanzeige, Listenanzeige, Wörterbuchanzeige, Zeichenfolgenkonvertierung

Beispiele für einfache Operator-Priorität in Python.

Python folgt der PEMDAS-Regel. PEMDAS steht für Klammern, Exponenten, Multiplikation und Division sowie Addition und Subtraktion.

Beispiel:

>>> a, b, c, d = 2, 3, 5, 7
>>> a ** (b + c)  # parentheses
256
>>> a * b ** c  # exponent: same as `a * (b ** c)`
7776
>>> a + b * c / d  # multiplication / division: same as `a + (b * c / d)`
4.142857142857142

Extras: mathematische Regeln gelten, aber nicht immer :

>>> 300 / 300 * 200
200.0
>>> 300 * 200 / 300
200.0
>>> 1e300 / 1e300 * 1e200
1e+200
>>> 1e300 * 1e200 / 1e300
inf


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow