Sök…


Introduktion

Pythonoperatörer har en bestämd ordningsföljd som bestämmer vilka operatörer som utvärderas först i ett potentiellt tvetydigt uttryck. I uttrycket 3 * 2 + 7 multipliceras till exempel först 3 med 2, och sedan läggs resultatet till 7, vilket ger 13. Uttrycket utvärderas inte tvärtom, eftersom * har en högre prioritet än +.

Nedan finns en lista över operatörer efter företräde, och en kort beskrivning av vad de (vanligtvis) gör.

Anmärkningar

Från Python-dokumentationen:

Följande tabell sammanfattar operatörens föregångar i Python, från lägsta prioritet (minst bindande) till högsta prioritet (mest bindande). Operatörer i samma ruta har samma företräde. Om inte syntaxen uttryckligen anges är operatörer binära. Operatörer i samma ruta grupperar från vänster till höger (med undantag för jämförelser, inklusive tester, som alla har samma företräde och kedja från vänster till höger och exponentiering, som grupperar från höger till vänster).

Operatör Beskrivning
lambda Lambda-uttryck
om annat Villkorligt uttryck
eller Boolean ELLER
och Booleska OCH
inte x Boolean INTE
i, inte i, är, är inte, <, <=,>,> =, <>,! =, == Jämförelser, inklusive medlemstest och identitetstester
| Bitvis ELLER
^ Bitvis XOR
& Bitvis OCH
<<, >> Skift
+, - Addition och subtraktion
*, /, //,% Multiplikation, division, resten [8]
+ x, -x, ~ x Positiv, negativ, bitvis INTE
** Exponentiation [9]
x [index], x [index: index], x (argument ...), x.attribute Prenumeration, skivning, samtal, attributreferens
(uttryck ...), [uttryck ...], {nyckel: värde ...}, uttryck ... Bindande eller tuple display, list display, ordbok display, strängkonvertering

Enkla operatörspredensexempel i python.

Python följer PEMDAS-regeln. PEMDAS står för parenteser, exponenter, multiplikation och division samt addition och subtraktion.

Exempel:

>>> 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

Extra: matematiska regler gäller, men inte alltid :

>>> 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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow