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