Exemplo de precedência de operadores Python

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

OperadorDescrição
** Exponenciação (elevar à potência)
~ + - Complemento, mais e menos unários (nomes de métodos para os dois últimos são + @ e - @)
* /% // Multiplique, divida, módulo e divisão de piso
+ - Adição e subtração
>> << Deslocamento bit a bit para direita e esquerda
E Bitwise 'AND'td>
^ | "OR" exclusivo bit a bit e "OR" regular
<= <>> = Operadores de comparação
<> ==! = Operadores de igualdade
=% = / = // = - = + = * = ** = Operadores de atribuição
é não é Operadores de identidade
em não em Operadores de associação
não ou e Operadores lógicos

A precedência do operador afeta como uma expressão é avaliada.

Por exemplo, x = 7 + 3 * 2; aqui, x é atribuído a 13, não 20, porque o operador * tem precedência mais alta do que +, então ele primeiro multiplica 3 * 2 e depois soma 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/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 você executa o programa acima, ele produz o seguinte resultado -

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