Operadores e precedência

Construir expressões e controlar a ordem de avaliação.

Operadores e precedência

Objetivo da aula

Construir expressões e controlar a ordem de avaliação.

Regra desta aula: vamos assumir que você nunca viu este assunto antes. Nenhum termo importante será usado sem explicação e todo exemplo deve ser entendido linha por linha, não apenas copiado.

Começando do zero

Operadores são símbolos ou palavras que produzem novos valores a partir de outros. Somar, multiplicar, comparar e combinar condições são operações. Quando há várias operações na mesma expressão, a precedência define qual parte é avaliada primeiro. Parênteses deixam a intenção explícita e reduzem dúvida.

Uma imagem mental para entender

Pense em uma conta escrita no quadro. “2 + 3 × 4” não é resolvida simplesmente da esquerda para a direita; multiplicação tem precedência. Programação também possui regras. Você não precisa decorar uma tabela enorme: quando a intenção importa, use parênteses para comunicar a ordem.

Conceitos essenciais, sem pular etapas

Aritméticos

+, -, *, /, //, % e ** realizam operações numéricas com significados específicos.

Divisão comum e inteira

/ produz divisão numérica em ponto flutuante. // é divisão de piso (floor division), que não significa apenas “cortar casas decimais” para números negativos.

Resto

% obtém o resto conforme a regra do operador em Python e é muito útil para verificar múltiplos e paridade.

Potência

** representa exponenciação. 2 ** 3 resulta 8.

Precedência e parênteses

Multiplicação ocorre antes de soma em uma expressão simples. Parênteses podem alterar ou documentar a ordem: (2 + 3) * 4 é diferente de 2 + 3 * 4.

Modelo mental

VALORES → OPERADORES → ORDEM DE AVALIAÇÃO → RESULTADO

Exemplo 1 — primeiro veja o programa inteiro

a = 2 + 3 * 4
b = (2 + 3) * 4
c = 17 // 5
d = 17 % 5
e = 2 ** 3

print(a, b, c, d, e)

Agora vamos ler linha por linha

  • 3 * 4 é calculado antes de somar 2, então a vale 14.
  • Os parênteses obrigam 2 + 3 a acontecer primeiro, então b vale 20.
  • 17 // 5 produz 3 neste caso.
  • 17 % 5 produz 2, o resto correspondente.
  • 2 ** 3 produz 8.

Saída esperada

14 20 3 2 8

Exemplo 2 — o mesmo conceito em outra situação

minutos = 137
horas = minutos // 60
restante = minutos % 60
print(horas, "h", restante, "min")

Esse exemplo mostra por que // e % são úteis juntos: dividimos 137 minutos em 2 horas completas e 17 minutos restantes.

Experimento guiado

Não pule esta parte. Programação só começa a fazer sentido quando você prevê um resultado, executa e compara a previsão com o que realmente aconteceu.

  1. Calcule manualmente 5 + 2 * 3 e (5 + 2) * 3 antes de executar.
  2. Use % para descobrir o resto de 23 por 4.
  3. Transforme 250 minutos em horas completas e minutos restantes.
  4. Reescreva uma expressão longa com parênteses que deixem a intenção clara, mesmo quando a precedência já produziria o mesmo resultado.

Mini desafio

Um pacote tem 53 itens e cada caixa comporta 10. Calcule quantas caixas ficam completamente cheias e quantos itens sobram.

Solução comentada

itens = 53
capacidade = 10
caixas_cheias = itens // capacidade
itens_restantes = itens % capacidade

print("Caixas cheias:", caixas_cheias)
print("Itens restantes:", itens_restantes)

Depois de executar a solução, altere pelo menos um valor e explique por que o novo resultado mudou. Se você só copiou e não consegue explicar cada linha, refaça o desafio em uma versão menor.

Erros comuns e por que acontecem

  • Confundir ^ com potência. Em Python, potência usa **; ^ é operador bit a bit XOR.
  • Achar que // significa simplesmente remover casas decimais em todos os casos.
  • Escrever expressões muito longas sem parênteses e dificultar a leitura da regra.

Cheque se você realmente entendeu

Quanto vale (2 + 3) * 4?

Resposta: 20.

Para que % é útil?

Resposta: Para obter o resto da divisão e implementar regras como paridade e ciclos.

Qual operador representa potência em Python?

Resposta: **.

Resumo em linguagem simples

Nesta aula, o ponto central foi Operadores e precedência. Tente explicar o modelo VALORES → OPERADORES → ORDEM DE AVALIAÇÃO → RESULTADO sem olhar a tela. Depois, escreva um exemplo próprio menor que os apresentados. Esse exercício de explicação é parte do aprendizado, não um extra.

Conexão com a próxima aula

Na próxima aula, Entrada pelo teclado com input, vamos aproveitar exatamente o que foi construído aqui. Você não precisa memorizar tudo; precisa conseguir reconhecer o conceito e reconstruí-lo com raciocínio e testes.