Python 3 - Exemplo de precedência de operadores

A tabela a seguir lista todos os operadores da mais alta precedência à mais baixa.

Sr. Não. Operador e descrição
1

**

Exponenciação (elevar à potência)

2

~ + -

complemento, mais e menos unários (os nomes dos métodos para os dois últimos são + @ e - @)

3

* / % //

Multiplique, divida, módulo e divisão de piso

4

+ -

Adição e subtração

5

>> <<

Deslocamento bit a bit para direita e esquerda

6

&

'E' bit a bit

7

^ |

"OR" exclusivo bit a bit e "OR" regular

8

<= < > >=

Operadores de comparação

9

<> == !=

Operadores de igualdade

10

= %= /= //= -= += *= **=

Operadores de atribuição

11

is is not

Operadores de identidade

12

in not in

Operadores de associação

13

not or and

Operadores lógicos

A precedência do operador afeta a avaliação de uma expressão.

Por exemplo, x = 7 + 3 * 2; aqui, x é atribuído a 13, não 20, porque o operador * tem precedência maior do que +, então ele primeiro multiplica 3 * 2 e depois é adicionado a 7.

Aqui, os operadores com a precedência mais alta aparecem na parte superior da tabela, aqueles com a mais baixa aparecem na parte inferior.

Exemplo

#!/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)

Resultado

Quando você executa o programa acima, ele produz o seguinte resultado -

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