Módulo 9 - Repetições com for e range()

for ou while: a diferença de mentalidade

9 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 01/07/2026

Velocidade

O que você vai aprender

  • Explicar a diferença de mentalidade entre for e while em uma frase.
  • Reconhecer quando a quantidade de repetições é conhecida e o for é a escolha natural.
  • Escrever o primeiro for e comparar com o while equivalente.
  • Entender o papel da variável do loop, que nasce no cabeçalho do for.

Duas formas de repetir, duas perguntas diferentes

No módulo 8 você conheceu o while e construiu um menu que roda até o usuário pedir para sair. O while é o loop da incerteza: ele não sabe quantas voltas vai dar, só sabe a condição que o mantém vivo. Acontece que boa parte das repetições do dia a dia não é assim. Imprimir uma mensagem 10 vezes, calcular a tabuada do 7, passar por cada letra de uma palavra: nesses casos você já sabe, antes de começar, exatamente quantas voltas o loop vai dar. Para esse cenário o Python tem uma ferramenta mais direta, e é ela que domina este módulo: o for.

A diferença é de mentalidade, não só de escrita. O while pensa em condição: repita enquanto isto for verdade. O for pensa em coleção: repita para cada item desta sequência. Quando você diz para cada número de 1 a 10, faça isso, você está pensando em for. Quando diz enquanto a resposta for diferente de sair, continue, está pensando em while. Aprender a ouvir qual das duas frases o problema está falando é metade do caminho.

while: repete ENQUANTO

  • A condição decide se o loop continua
  • Você cria e atualiza o contador na mão
  • Não sabe de antemão quantas voltas vai dar
  • Ideal para menus, validações e espera de resposta

for: repete PARA CADA

  • A sequência decide quantas voltas o loop dá
  • A variável do loop avança sozinha, sem contador manual
  • A quantidade de voltas é conhecida desde o início
  • Ideal para tabuadas, somas, listas e letras de um texto

O mesmo programa escrito nos dois

Nada convence mais que ver o mesmo programa escrito das duas formas. A tarefa: mostrar a mensagem Volta 1, Volta 2 e Volta 3 na tela. Primeiro com o while, do jeito que você aprendeu no módulo passado.

contador = 1
while contador <= 3:
    print("Volta", contador)
    contador = contador + 1

# Volta 1
# Volta 2
# Volta 3

Com while: você cria o contador, testa a condição e atualiza o contador na mão. Três responsabilidades suas.

for contador in range(1, 4):
    print("Volta", contador)

# Volta 1
# Volta 2
# Volta 3

Com for: duas linhas. O range(1, 4) entrega os números 1, 2 e 3, um por volta, e o loop para sozinho.

Repare no que sumiu na versão com for: a linha que cria o contador antes do loop e a linha que soma 1 a cada volta. O for cuida das duas coisas. A cada volta, a variável contador recebe o próximo número da sequência, e quando os números acabam o loop termina, sem risco de loop infinito por esquecimento. É por isso que, na prática, errar com for é bem mais difícil que errar com while. O range(1, 4) ainda vai ser dissecado na próxima aula; por ora, aceite que ele produz os números 1, 2 e 3.

A variável que nasce no for

A estrela do for é a variável do loop, aquela que aparece logo depois da palavra for. Ela não precisa existir antes: nasce ali, no cabeçalho, e a função dela é viver dentro do loop. A cada volta, o Python entrega a ela o próximo item da sequência. Você escolhe o nome como escolhe qualquer nome de variável: contador, numero, letra, i. O nome i é uma convenção antiga da programação para contadores curtos, e você vai vê-lo em muito código por aí, mas nomes descritivos deixam o programa mais legível.

for numero in range(1, 4):
    dobro = numero * 2
    print("O dobro de", numero, "é", dobro)

# O dobro de 1 é 2
# O dobro de 2 é 4
# O dobro de 3 é 6

A variável numero recebe 1, depois 2, depois 3. Dentro do bloco, você a usa como qualquer variável.

Um detalhe de honestidade técnica: em Python, depois que o loop termina, a variável do loop ainda existe, guardando o último valor que recebeu. Ou seja, ela não morre de verdade quando o loop acaba. Mesmo assim, trate-a como coisa do loop: código limpo não depende do valor que sobrou depois do for. Pense nela como o crachá de visitante de um prédio: tecnicamente você pode sair com ele no bolso, mas ele só faz sentido lá dentro.

Teste rápido

Você precisa repetir uma ação exatamente 50 vezes. Qual loop expressa melhor essa intenção e por quê?

Perguntas frequentes

O for substitui o while? Posso esquecer o que aprendi no módulo 8?
Não substitui, e nada do módulo 8 foi tempo perdido. Os dois convivem: o for brilha quando a quantidade de repetições é conhecida, e o while continua insubstituível para menus, validação de entrada e qualquer repetição cujo fim depende do usuário. O projeto final do curso usa os dois no mesmo programa.
Tudo o que dá para fazer com for dá para fazer com while?
Tecnicamente sim: todo for pode ser reescrito como while com contador manual. Mas o contrário não vale com a mesma naturalidade, e o for existe justamente para eliminar as linhas de contador em que iniciantes mais erram. Use a ferramenta que expressa melhor a intenção do código.
Por que tanta gente chama a variável do loop de i?
É uma convenção herdada da matemática e de linguagens antigas, em que i abreviava índice. Para contadores curtos e sem significado especial, i é aceito e todo mundo entende. Quando a variável representa algo concreto, prefira nome descritivo: letra, numero, tarefa. Legibilidade vem primeiro.
A variável do for precisa ser criada antes do loop?
Não. Ela nasce no próprio cabeçalho do for e recebe o primeiro item da sequência na primeira volta. Se já existir uma variável com o mesmo nome, o for passa por cima do valor antigo, o que costuma ser fonte de confusão; evite reutilizar nomes assim.
O for do Python é igual ao for de outras linguagens?
Não exatamente. Em linguagens como C e Java, o for tradicional é um while disfarçado, com inicialização, condição e incremento escritos na mão. O for do Python é do tipo para cada, mais parecido com o for-each dessas linguagens. Por isso ele é considerado mais simples de aprender e mais difícil de errar.
Dá para interromper um for no meio, como no while?
Dá. O comando break, que você viu no módulo 8, funciona igual dentro do for: encerra o loop na hora, mesmo que ainda restem itens na sequência. Existe também o continue, que pula direto para a próxima volta. Nos exemplos deste módulo você quase não vai precisar deles, mas é bom saber que existem.

Fontes

Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.