Aula sobre Operadores em Python
Em Python, operadores são símbolos ou palavras-chave que realizam operações específicas em
variáveis e valores. Eles são essenciais para construir expressões lógicas, matemáticas e de
manipulação de dados. Para usá-los de forma eficiente, é crucial entender suas categorias, funções
e como interagem entre si por meio da ordem de precedência. Vamos explorar esses conceitos de
forma integrada.
Tipos de Operadores e Suas Funções
Os operadores em Python se dividem em grupos, cada um com um propósito distinto:
Operadores Aritméticos
Realizam cálculos matemáticos básicos.
+ (adição): 5 + 3 -> 8.
- (subtração): 10 - 4 -> 6.
* (multiplicação): 3 * 4 -> 12.
/ (divisão real): 10 / 2 -> 5.0.
** (potência): 2 ** 3 -> 8.
% (módulo/resto): 10 % 3 -> 1.
// (divisão inteira): 10 // 3 -> 3.
Operadores de Comparação
Comparam valores e retornam True ou False.
== (igualdade): 5 == 5 -> True.
!= (diferença): 5 != 3 -> True.
> (maior que): 7 > 5 -> True.
< (menor que): 3 < 2 -> False.
>= (maior ou igual): 5 >= 5 -> True.
<= (menor ou igual): 4 <= 3 -> False.
Operadores Lógicos
Combinam expressões booleanas.
and (E lógico): Retorna True se ambas as condições forem verdadeiras.
Exemplo: (5 > 3) and (2 == 2) -> True.
or (OU lógico): Retorna True se pelo menos uma condição for verdadeira.
Exemplo: (5 < 3) or (2 == 2) -> True.
not (NEGAÇÃO): Inverte o valor booleano.
Exemplo: not (5 < 3) -> True.
Operadores de Atribuição
Atribuem valores a variáveis, muitas vezes combinando operações.
= (atribuição simples): x = 5.
+= (adição e atribuição): x += 3 equivale a x = x + 3.
-= (subtração e atribuição): x -= 2 -> x = x - 2.
*= (multiplicação e atribuição): x *= 4 -> x = x * 4.
/= (divisão e atribuição): x /= 2 -> x = x / 2.
Operadores de Identidade
Verificam se dois objetos ocupam a mesma posição na memória.
is: a = [1, 2]; b = a; a is b -> True.
is not: 5 is not "5" -> True (tipos diferentes).
Operadores de Pertencimento
Verificam se um elemento está em uma sequência (lista, tupla, string etc.).
in: 3 in [1, 2, 3] -> True.
not in: 4 not in (1, 2, 3) -> True.
Operadores Bitwise (Manipulação de Bits)
Trabalham diretamente com bits de números inteiros.
& (AND bit a bit): 5 & 3 -> 1 (binário: 101 & 011 = 001).
| (OR bit a bit): 5 | 3 -> 7 (101 | 011 = 111).
^ (XOR bit a bit): 5 ^ 3 -> 6 (101 ^ 011 = 110).
~ (NOT bit a bit): Inverte os bits. Exemplo: ~5 -> -6.
<< (deslocamento à esquerda): 5 << 1 -> 10 (equivale a multiplicar por 2).
>> (deslocamento à direita): 5 >> 1 -> 2 (equivale a dividir por 2).
Ordem de Precedência: Como os Operadores Interagem
Quando múltiplos operadores aparecem em uma expressão, o Python segue uma hierarquia para
resolvê-los, conhecida como ordem de precedência. Essa ordem evita ambiguidades e define quais
operações são realizadas primeiro. A regra geral é:
Parênteses (): Sempre têm a prioridade máxima.
Exemplo: (3 + 2) * 4 -> 5 * 4 = 20.
Operadores Unários: Afetam um único operando.
+x (positivo), -x (negativo), not, ~ (bitwise NOT).
Exemplo: -3 ** 2 -> -9 (potência antes do sinal negativo).
Potência (): Avaliada da direita para a esquerda.
Exemplo: 2 ** 3 ** 2 -> 2 ** (3 ** 2) = 512.
Multiplicação, Divisão e Módulo: *, /, //, % (esquerda para direita).
Exemplo: 10 / 2 * 3 -> 5 * 3 = 15.
Adição e Subtração: +, - (esquerda para direita).
Exemplo: 5 - 2 + 3 -> 3 + 3 = 6.
Operadores Bitwise: <<, >>, &, ^, |.
Exemplo: 5 << 1 & 3 -> (10) & 3 = 2.
Operadores de Comparação: ==, !=, >, <, >=, <=.
Exemplo: 5 + 3 > 7 -> 8 > 7 = True.
Operadores Lógicos: not -> and -> or.
Exemplo: True or False and not True -> True or (False and False) = True.
Operadores de Atribuição: =, +=, -=, etc. (são resolvidos por último).
Exemplo Prático: Combinando Operadores
Considere a expressão:
resultado = 15 % 4 ** 2 + 3 > 10 and "a" in ["a", "b"] or not (5 & 3 == 1)
Passo a passo:
Potência: 4 ** 2 = 16.
Módulo: 15 % 16 = 15.
Adição: 15 + 3 = 18.
Comparação: 18 > 10 -> True.
Bitwise AND: 5 & 3 = 1 -> 1 == 1 -> True.
Negação: not True -> False.
Pertencimento: "a" in ["a", "b"] -> True.
Lógica: True and True -> True (lado esquerdo do or).
Resultado final: True or False -> True.
Dicas para Evitar Erros
Use parênteses para deixar a ordem explícita, mesmo que não seja estritamente necessária.
Exemplo: (a + b) * c é mais claro do que a + b * c.
Conheça a precedência de operadores lógicos: not tem prioridade sobre and e or.
Teste expressões complexas em partes menores para validar a lógica.
Dominar operadores e sua precedência é fundamental para escrever código Python eficiente e
legível. Pratique combinando diferentes tipos de operadores e observe os resultados!