Python Language
Precedenza dell'operatore
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