for, range e sequências

Percorrer uma sequência ou uma faixa conhecida de valores.

for, range e sequências

Objetivo da aula

Percorrer uma sequência ou uma faixa conhecida de valores.

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

for percorre elementos de uma sequência ou outro objeto iterável. Em vez de controlar manualmente um índice para tarefas simples, você pode dizer: “para cada item desta coleção, faça isto”. range() é uma forma comum de produzir sequências de inteiros para contagens.

Uma imagem mental para entender

Imagine uma fila de cartões com nomes. Você pega um cartão por vez e executa a mesma tarefa com aquele nome. Não precisa perguntar “qual é a posição atual?” se tudo o que importa é o cartão da vez. for fornece diretamente o próximo elemento.

Conceitos essenciais, sem pular etapas

for item in sequencia

Em cada iteração, item recebe o próximo elemento da sequência.

range(stop)

Produz inteiros começando em 0 e parando antes de stop. range(5) percorre 0, 1, 2, 3 e 4.

range(start, stop)

Permite escolher início. range(1, 6) percorre 1 até 5.

range(start, stop, step)

O terceiro argumento define o passo, como 2 em 2 ou contagem regressiva com passo negativo.

Limite final exclusivo

O valor stop não entra na sequência. Essa regra é fonte frequente de confusão no começo.

Modelo mental

SEQUÊNCIA/ITERÁVEL → PRÓXIMO ELEMENTO → CORPO → PRÓXIMO → FIM DA SEQUÊNCIA

Exemplo 1 — primeiro veja o programa inteiro

for numero in range(1, 6):
    print(numero)

Agora vamos ler linha por linha

  • range(1, 6) começa em 1.
  • O limite final 6 é exclusivo, então o último número é 5.
  • numero recebe cada valor produzido em sequência.
  • O corpo contém apenas um print, mas poderia executar várias operações.

Saída esperada

1
2
3
4
5

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

for numero in range(10, 0, -2):
    print(numero)

O passo -2 produz uma sequência decrescente: 10, 8, 6, 4, 2. O limite 0 continua exclusivo.

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. Teste list(range(5)) no interpretador e observe os valores.
  2. Compare range(5) com range(1, 6).
  3. Crie uma sequência de pares de 2 até 10.
  4. Crie uma contagem regressiva de 5 até 1 usando passo negativo.

Mini desafio

Use for e range para mostrar a tabuada do 3 de 1 a 10.

Solução comentada

for multiplicador in range(1, 11):
    resultado = 3 * multiplicador
    print(f"3 x {multiplicador} = {resultado}")

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

  • Esperar que range(1, 5) inclua 5.
  • Usar range quando já existe uma lista de elementos e seria mais claro percorrê-la diretamente.
  • Criar manualmente um contador desnecessário dentro de um for simples.
  • Usar passo negativo com limites incompatíveis e obter sequência vazia.

Cheque se você realmente entendeu

O valor final de range é incluído?

Resposta: Não; o limite stop é exclusivo.

O que percorre range(1, 4)?

Resposta: 1, 2 e 3.

Quando percorrer diretamente uma lista é melhor?

Resposta: Quando você precisa dos elementos e não de seus números de posição.

Resumo em linguagem simples

Nesta aula, o ponto central foi for, range e sequências. Tente explicar o modelo SEQUÊNCIA/ITERÁVEL → PRÓXIMO ELEMENTO → CORPO → PRÓXIMO → FIM DA SEQUÊNCIA 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, Contadores e acumuladores, 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.