Prioridade de Operadores¶
Agora já incluimos uma certa quantidade de operadores adicionais em relação ao que já tínhamos discutido. É importante entender como esses operadores se relacionam em relação à prioridade (precedência) de cada um.
Python irá sempre avaliar primeiro operadores aritméticos (** é o primeiro, depois multiplicação/divisão, depois adição/subtração). Em seguida são os operadores relacionais. E finalmente, os operadores lógicos. Isso significa que a expressão x*5 >= 10 and y-6 <= 20
será
avaliada de forma que as operações aritméticas ocorrerão primeiro, depois as relacionais. E por fim, o operador and
. Muitos programadores colocam parênteses entre as duas expressões relacionais, mas não é necessário.
A tabela abaixo sumariza a prioridade de operadores, da maior para a menor. Uma tabela completa da linguagem Python inteira pode ser encontrada em Python Documentation.
Prioridade | Categoria | Operadores |
---|---|---|
7 (maior) | potenciação | ** |
6 | multiplicação | *,/,//,% |
5 | adição | +,- |
4 | relacional | ==,!=,<=,>=,>,< |
3 | lógico | not |
2 | lógico | and |
1 (menor) | lógico | or |
Nota
Esta área de trabalho pode ser usada para fazer experimentos, se você desejar ou julgar conveniente.
Veja se você entendeu!
-
selecao-3-1: Qual das opções abaixo demonstra corretamente a prioridade dos operadores (usando parênteses) na seguinte expressão: 5*3 > 10 and 4+6==11
- ((5*3) > 10) and ((4+6) == 11)
- Exato, * e + têm prioridade maior, seguidos por > e ==, e então "and"
- (5*(3 > 10)) and (4 + (6 == 11))
- Operadores aritméticos (*, +) têm prioridade maior que operadores de comparação (>, ==)
- ((((5*3) > 10) and 4)+6) == 11
- Este agrupamento considera que Python simplesmente avalia da esquerda para a direita, o que está incorreto. Ele segue a lista de prioridades mostrada anteriormente.
- ((5*3) > (10 and (4+6))) == 11
- Estre agrupamento considera que "and" tem uma prioridade maior que ==, o que não é verdade.