Ricerca…


introduzione

Gli operatori Python hanno un ordine di precedenza impostato, che determina quali operatori vengono valutati per primi in un'espressione potenzialmente ambigua. Ad esempio, nell'espressione 3 * 2 + 7, il primo 3 viene moltiplicato per 2, e quindi il risultato viene aggiunto a 7, ottenendo 13. L'espressione non viene valutata al contrario, perché * ha una precedenza più alta di +.

Di seguito è riportato un elenco di operatori in base alla precedenza e una breve descrizione di ciò che fanno (di solito).

Osservazioni

Dalla documentazione di Python:

La tabella seguente riepiloga le precedenze dell'operatore in Python, dalla precedenza più bassa (meno vincolante) alla precedenza più alta (la maggior parte del binding). Gli operatori nella stessa casella hanno la stessa precedenza. A meno che la sintassi non sia esplicitamente data, gli operatori sono binari. Gli operatori nello stesso gruppo si spostano da sinistra a destra (eccetto per i confronti, inclusi i test, che hanno tutti la stessa precedenza e catena da sinistra a destra e l'esponenziazione, quali gruppi da destra a sinistra).

Operatore Descrizione
lambda Espressione di Lambda
se altro Espressione condizionale
o Booleano OR
e AND booleano
non x NON booleano
in, non in, is, is not, <, <=,>,> =, <>,! =, == Confronti, inclusi test di appartenenza e test di identità
| Bitwise OR
^ XOR bit a bit
& Bitwise AND
<<, >> Turni
+, - Addizione e sottrazione
*, /, //,% Moltiplicazione, divisione, resto [8]
+ x, -x, ~ x Positivo, negativo, bit negativo NON
** Esponenziazione [9]
x [indice], x [indice: indice], x (argomenti ...), x.attributo Sottoscrizione, slicing, chiamata, riferimento attributo
(espressioni ...), [espressioni ...], {chiave: valore ...}, espressioni ... Visualizzazione di binding o tupla, visualizzazione elenco, visualizzazione dizionario, conversione stringhe

Esempi di precedenza di operatore semplice in python.

Python segue la regola PEMDAS. PEMDAS sta per Parentesi, Esponenti, Moltiplicazione e Divisione, Addizione e Sottrazione.

Esempio:

>>> 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: le regole matematiche sono valide, ma non sempre :

>>> 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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow