Python 3 - Esempio di precedenza degli operatori
La tabella seguente elenca tutti gli operatori dalla precedenza più alta a quella più bassa.
Sr.No. | Operatore e descrizione |
---|---|
1 | ** Esponenziazione (aumento alla potenza) |
2 | ~ + - complemento, più e meno unario (i nomi dei metodi per gli ultimi due sono + @ e - @) |
3 | * / % // Moltiplica, dividi, modulo e divisione dei piani |
4 | + - Addizione e sottrazione |
5 | >> << Spostamento bit per bit destro e sinistro |
6 | & Bitwise "AND" |
7 | ^ | "OR" esclusivo bit per bit e "OR" regolare |
8 | <= < > >= Operatori di confronto |
9 | <> == != Operatori di uguaglianza |
10 | = %= /= //= -= += *= **= Operatori di assegnazione |
11 | is is not Operatori di identità |
12 | in not in Operatori di appartenenza |
13 | not or and Operatori logici |
La precedenza degli operatori influisce sulla valutazione di 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 viene aggiunto a 7.
Qui, gli operatori con la precedenza più alta vengono visualizzati nella parte superiore della tabella, quelli con la priorità più bassa in basso.
Esempio
#!/usr/bin/python3
a = 20
b = 10
c = 15
d = 5
print ("a:%d b:%d c:%d d:%d" % (a,b,c,d ))
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)
Produzione
Quando esegui il programma sopra, produce il seguente risultato:
a:20 b:10 c:15 d:5
Value of (a + b) * c / d is 90.0
Value of ((a + b) * c) / d is 90.0
Value of (a + b) * (c / d) is 90.0
Value of a + (b * c) / d is 50.0