Exemplo de precedência de operadores Python
A tabela a seguir lista todos os operadores da precedência mais alta para a mais baixa.
Operador | Descriçã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