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