Esempio di precedenza degli operatori Python
La tabella seguente elenca tutti gli operatori dalla precedenza più alta al più basso.
Operatore | Descrizione |
---|---|
** | Esponenziazione (aumento alla potenza) |
~ + - | Complemento, più e meno unario (i nomi dei metodi per gli ultimi due sono + @ e - @) |
* /% // | Moltiplica, dividi, modulo e divisione dei piani |
+ - | Addizione e sottrazione |
>> << | Spostamento bit per bit destro e sinistro |
& | Bitwise 'AND'td> |
^ | | "OR" esclusivo bit per bit e "OR" regolare |
<= <>> = | Operatori di confronto |
<> ==! = | Operatori di uguaglianza |
=% = / = // = - = + = * = ** = | Operatori di assegnazione |
È non è | Operatori di identità |
in non in | Operatori di appartenenza |
non o e | Operatori logici |
La precedenza degli operatori influisce sul modo in cui viene valutata un'espressione.
Ad esempio, x = 7 + 3 * 2; qui, x è assegnato 13, non 20 perché l'operatore * ha una precedenza maggiore di +, quindi prima moltiplica 3 * 2 e poi somma in 7.
Qui, gli operatori con la precedenza più alta vengono visualizzati nella parte superiore della tabella, quelli con la priorità più bassa in fondo.
Esempio
#!/usr/bin/python
a = 20
b = 10
c = 15
d = 5
e = 0
e = (a + b) * c / d #( 30 * 15 ) / 5
print "Value of (a + b) * c / d is ", e
e = ((a + b) * c) / d # (30 * 15 ) / 5
print "Value of ((a + b) * c) / d is ", e
e = (a + b) * (c / d); # (30) * (15/5)
print "Value of (a + b) * (c / d) is ", e
e = a + (b * c) / d; # 20 + (150/5)
print "Value of a + (b * c) / d is ", e
Quando esegui il programma sopra, produce il seguente risultato:
Value of (a + b) * c / d is 90
Value of ((a + b) * c) / d is 90
Value of (a + b) * (c / d) is 90
Value of a + (b * c) / d is 50