Loops em Python: Como Repetir Tarefas sem Repetir Código
Entenda for, while, break e continue com exemplos simples e veja onde os loops aparecem no dia a dia do desenvolvimento.
18/09/2026 Desenvolvimento
Imagine que você precisa cumprimentar 100 pessoas pelo nome. Você escreveria print() 100 vezes? Claro que não. É exatamente para isso que existem os loops (ou laços de repetição): menos código, mais produtividade.
Um loop é uma estrutura que permite repetir um bloco de código várias vezes, seguindo uma determinada regra. Em Python, os dois principais são o for e o while, e dois comandos ajudam a controlá-los: break e continue. Neste artigo, vamos ver cada um deles com exemplos curtos e resultados na tela.
Uma Analogia do Dia a Dia
Pense em um caixa de supermercado:
- for: "para cada cliente da lista de hoje, faça o atendimento". Você sabe quem vai atender, e o trabalho termina quando a lista acaba.
- while: "enquanto houver cliente na fila, continue atendendo". Você não sabe quantos serão, e continua enquanto a condição for verdadeira.
- break: o caixa avisa "encerrei o expediente" e para tudo, mesmo que ainda haja gente na fila.
- continue: o cliente esqueceu a carteira, então o caixa pula esse atendimento e chama o próximo.
Por Que Precisamos de Loops?
Veja o que acontece sem um loop:
print("Ana")
print("João")
print("Maria")
Com 3 nomes, tudo bem. Com 3.000, é inviável. Com um loop, o código continua do mesmo tamanho, não importa a quantidade de nomes:
nomes = ["Ana", "João", "Maria"]
for nome in nomes:
print(nome)
Resultado:
Ana
João
Maria
1. O Loop for
O for é usado para percorrer uma sequência de elementos (uma lista, um texto, um dicionário) ou para repetir uma quantidade determinada de vezes.
Lendo o exemplo acima em português: "para cada nome dentro da lista nomes, imprima o nome". A cada volta, a variável nome assume o próximo item da lista. O bloco que se repete fica indentado (com recuo) logo abaixo do for.
Repetindo N vezes com range()
Quando você quer repetir algo um número específico de vezes, use a função range():
for numero in range(5):
print(numero)
Resultado:
0
1
2
3
4
Repare que o range(5) começa no 0 e termina no 4: ele gera 5 números, mas não inclui o 5. Você também pode escolher onde começar, onde parar e o tamanho do passo:
range(5)gera 0, 1, 2, 3, 4range(1, 6)gera 1, 2, 3, 4, 5range(0, 10, 2)gera 0, 2, 4, 6, 8 (de 2 em 2)
Percorrendo um dicionário
Com dicionários, o método .items() entrega a chave e o valor de uma vez:
notas = {"Ana": 9, "João": 7, "Maria": 8}
for nome, nota in notas.items():
print(f"{nome} tirou {nota}")
Resultado:
Ana tirou 9
João tirou 7
Maria tirou 8
Exemplo prático: somando uma compra
compras = [25.50, 10.00, 42.90]
total = 0
for valor in compras:
total += valor
print(f"Total: R$ {total:.2f}")
Resultado:
Total: R$ 78.40
Aqui, a variável total começa em zero e vai acumulando cada valor da lista. Esse padrão de "acumular dentro do loop" é um dos mais usados em programação.
2. O Loop while
O while repete enquanto uma condição for verdadeira. Ele é ideal quando você não sabe de antemão quantas repetições serão necessárias.
contador = 1
while contador <= 5:
print(contador)
contador += 1
Resultado:
1
2
3
4
5
Como Funciona?
- O Python verifica a condição
contador <= 5. - Se for verdadeira, executa o bloco (imprime e soma 1 ao contador).
- Volta ao início e verifica a condição de novo.
- Quando a condição vira falsa (o contador chega a 6), o loop termina.
Cuidado com o Loop Infinito
Se a condição nunca ficar falsa, o loop nunca termina. Isso costuma acontecer quando esquecemos de atualizar a variável da condição:
contador = 1
while contador <= 5:
print(contador)
# Esqueceu o "contador += 1": o valor nunca muda
# e o programa imprime 1 para sempre
Se isso acontecer no seu terminal, pressione Ctrl + C para interromper o programa. Antes de rodar um while, sempre pergunte: "o que vai fazer essa condição virar falsa?"
For ou While: Qual Usar?
- Use for quando você tem uma sequência para percorrer ou sabe quantas vezes vai repetir.
- Use while quando a repetição depende de uma condição que pode mudar a qualquer momento (como esperar o usuário digitar a resposta certa).
Na dúvida, prefira o for: ele é mais difícil de errar, porque termina sozinho quando a sequência acaba.
3. O Comando break
O break interrompe o loop antes que ele termine. Assim que o Python encontra o break, ele sai do loop e segue para o código que vem depois.
for numero in range(10):
if numero == 5:
break
print(numero)
Resultado:
0
1
2
3
4
O loop pararia no 9, mas, quando o número chega a 5, o break encerra tudo (por isso o 5 nem chega a ser impresso).
Exemplo prático: procurando um item
produtos = ["caneta", "caderno", "lápis", "borracha"]
for produto in produtos:
if produto == "lápis":
print("Encontrei o lápis!")
break
Resultado:
Encontrei o lápis!
Depois de encontrar o que procurava, não faz sentido continuar olhando o resto da lista. O break economiza trabalho.
Exemplo prático: while com break
O break também é muito usado para sair de um while quando algo acontece, como o usuário acertar a senha:
senha_correta = "python123"
tentativas = 0
while tentativas < 3:
senha = input("Digite a senha: ")
if senha == senha_correta:
print("Acesso liberado!")
break
tentativas += 1
print("Senha incorreta.")
Exemplo de execução:
Digite a senha: abc
Senha incorreta.
Digite a senha: python123
Acesso liberado!
4. O Comando continue
O continue pula a execução atual e continua o loop: o restante do bloco é ignorado, mas o loop segue para a próxima volta.
for numero in range(5):
if numero == 2:
continue
print(numero)
Resultado:
0
1
3
4
Nesse caso, o número 2 não será impresso, mas o loop não para: ele simplesmente pula para o 3.
Diferença entre break e continue
- break: "chega, pode parar tudo". O loop termina de vez.
- continue: "esse aqui não, próximo!". Só a volta atual é pulada.
Loops Aninhados: Um Loop Dentro do Outro
É possível colocar um loop dentro de outro. Para cada volta do loop de fora, o loop de dentro roda por completo. Um exemplo clássico é a tabuada:
for i in range(1, 4):
for j in range(1, 4):
print(f"{i} x {j} = {i * j}")
Resultado:
1 x 1 = 1
1 x 2 = 2
1 x 3 = 3
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
Na Prática: Onde os Loops Aparecem?
Loops aparecem o tempo todo no desenvolvimento. Alguns usos comuns:
- Percorrer listas e dicionários;
- Processar dados;
- Analisar transações;
- Trabalhar com respostas de APIs;
- Automatizar tarefas;
- Processar registros de um banco de dados.
Exemplo prático: analisando transações
Um sistema precisa destacar as transações com valor acima de R$ 1.000 para revisão:
transacoes = [120.00, 89.90, 15000.00, 45.00, 3200.00]
suspeitas = 0
for valor in transacoes:
if valor > 1000:
suspeitas += 1
print(f"Transação suspeita: R$ {valor:.2f}")
print(f"Total de transações suspeitas: {suspeitas}")
Resultado:
Transação suspeita: R$ 15000.00
Transação suspeita: R$ 3200.00
Total de transações suspeitas: 2
Exemplo prático: lendo a resposta de uma API
APIs costumam devolver listas de itens. Um loop com continue permite ignorar os que não interessam:
resposta = {
"status": "ok",
"usuarios": [
{"nome": "Ana", "ativo": True},
{"nome": "João", "ativo": False},
{"nome": "Maria", "ativo": True},
],
}
for usuario in resposta["usuarios"]:
if not usuario["ativo"]:
continue
print(f"Usuário ativo: {usuario['nome']}")
Resultado:
Usuário ativo: Ana
Usuário ativo: Maria
O mesmo raciocínio vale para registros de um banco de dados: a consulta devolve várias linhas e um for passa por cada uma delas.
Erros Comuns com Loops
- Loop infinito: esquecer de atualizar a variável da condição em um
while. - Erro de "um a mais ou a menos": lembrar que
range(5)vai de 0 a 4, e não de 1 a 5. - Indentação errada: em Python, o recuo define o que está dentro do loop. Uma linha fora do lugar muda o resultado do programa.
- Alterar a lista enquanto a percorre: remover ou adicionar itens durante o
forpode pular elementos. Prefira criar uma nova lista com o resultado. - Usar while quando um for resolve: deixa o código mais longo e mais fácil de errar.
Boas Práticas
- Use nomes que façam sentido:
for produto in produtosé mais claro quefor x in y. - Prefira
forquando houver uma sequência para percorrer. - Garanta que todo
whiletenha uma forma clara de terminar. - Evite loops muito longos: se o bloco ficou grande, considere separar em funções.
Exercícios para Praticar
- Imprima os números de 1 a 10 usando
forerange(). - Some todos os números pares de 1 a 20 (dica:
range(2, 21, 2)). - Use um
whileque peça um número ao usuário e só pare quando ele digitar "sair". - Dada uma lista de preços, mostre apenas os que estão acima de R$ 50, usando
continuepara pular os demais.
Resumindo
- for: percorre elementos ou repete algo de forma controlada.
- while: repete enquanto uma condição for verdadeira.
- break: interrompe o loop.
- continue: pula uma execução e continua o loop.
Conclusão
No começo, loops podem parecer complicados, mas depois viram uma das ferramentas mais úteis do Python. Com for, while, break e continue, você escreve menos código, evita repetição e automatiza tarefas que levariam horas para fazer à mão.
Qual desses exercícios você vai testar primeiro? Conte nos comentários como foi!
Teste seu conhecimento
Responda às perguntas abaixo para revisar os principais pontos deste artigo.
1. Quais números a função range(5) gera em um loop for?
Resposta correta: B) 0, 1, 2, 3, 4
O range(5) começa no 0 e gera 5 números, mas não inclui o 5. Para contar de 1 a 5, seria range(1, 6).
2. Você precisa repetir uma tarefa enquanto o usuário não digitar a resposta correta, sem saber quantas tentativas serão necessárias. Qual estrutura é a mais indicada?
Resposta correta: C) while
O while repete enquanto uma condição for verdadeira, o que é ideal quando não se sabe de antemão quantas repetições serão necessárias.
3. Um loop for percorre range(10). Em cada volta, ele verifica se numero == 5 (e, se for, executa break) e só depois imprime numero. O que será impresso?
Resposta correta: A) 0, 1, 2, 3, 4
Quando numero chega a 5, o break encerra o loop antes do print, então o 5 nem chega a ser impresso.
4. Qual é a diferença entre break e continue?
Resposta correta: D) O break encerra o loop de vez; o continue pula apenas a volta atual e segue para a próxima
O break interrompe o loop; o continue ignora o resto da execução atual e continua com a próxima volta. Os dois funcionam tanto em for quanto em while.
5. Qual é uma causa comum de loop infinito em um while?
Resposta correta: B) Esquecer de atualizar a variável usada na condição, que então nunca fica falsa
Sem o contador += 1, por exemplo, a condição contador <= 5 continua verdadeira para sempre. Nesse caso, use Ctrl + C para interromper o programa.