Tamanho de fonte
Alto contraste
Altura de linha
Entrar Cadastrar
Thumbnail mostrando símbolo de loop infinito com código Python para artigo sobre estruturas de repetição

Estruturas de repetição do zero: domine for e while com exemplos em Python

Avatar de Heitor Tasso Heitor Tasso
11 minutos de leitura 18/06/2025 • Atualizado 6 dias atrás 5xp

Imagine que você precisa enviar 100 e-mails personalizados para seus clientes ou processar centenas de arquivos em uma pasta. Fazer isso manualmente seria uma tarefa tediosa e propensa a erros, não é mesmo? É exatamente para resolver esse tipo de problema que existem as estruturas de repetição na programação.

As estruturas de repetição são recursos fundamentais que permitem executar um bloco de código várias vezes sem precisar reescrevê-lo. Em Python, contamos principalmente com dois tipos: o for e o while. Primeiramente, você vai aprender como eles funcionam e, em seguida, descobrir como aplicá-los para automatizar tarefas do seu dia a dia.

Ao final deste artigo, você será capaz de criar seus próprios loops para solucionar problemas reais, economizando tempo e evitando erros manuais. Além disso, vai entender quando usar cada tipo de estrutura e quais cuidados tomar para evitar problemas comuns.

Diagrama mostrando ciclo de repetição com início, condição, execução

O que são estruturas de repetição em programação?

As estruturas de repetição, também conhecidas como loops ou laços de repetição, são comandos que permitem executar um conjunto de instruções múltiplas vezes. Dessa forma, você pode automatizar tarefas repetitivas que, caso contrário, exigiriam escrever o mesmo código dezenas ou centenas de vezes.

Para entender melhor, pense numa situação do cotidiano: lavar pratos. Você pega um prato, lava, enxágua e coloca para secar. Depois, repete esse processo até que todos os pratos estejam limpos. Em programação, funciona de maneira similar: definimos uma sequência de ações e repetimos até atingir nosso objetivo.

Os benefícios das estruturas de repetição são evidentes:

  • Redução significativa de código: ao invés de copiar e colar as mesmas linhas, você escreve uma vez e repete quantas vezes precisar;
  • Automação de processos: tarefas que levariam horas podem ser concluídas em segundos;
  • Menor probabilidade de erros: menos código significa menos chances de cometer equívocos;
  • Facilidade de manutenção: alterações precisam ser feitas apenas em um local.

Por exemplo, imagine que você precisa imprimir os números de 1 a 5. Sem estruturas de repetição, seria assim:

print(1)
print(2)
print(3)
print(4)
print(5)
Testar

Com uma estrutura de repetição, você pode fazer o mesmo com apenas duas linhas:

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

As estruturas de repetição estão presentes em praticamente todas as linguagens de programação, sendo um conceito universal. Contudo, cada linguagem tem suas particularidades de sintaxe e funcionamento.

Para compreender completamente esse conceito, é importante conhecer também os principais tipos de dados em Python, pois frequentemente utilizamos listas, strings e outros tipos nas nossas repetições.

Comparação visual entre múltiplas linhas de código repetitivo e uma única estrutura de loop

Principais tipos de estruturas de repetição em Python

Python oferece principalmente duas estruturas de repetição: for e while. Cada uma tem características específicas que as tornam mais adequadas para diferentes situações.

Loop for: quando você sabe quantas vezes repetir

O loop for é ideal quando você sabe exatamente quantas repetições precisa fazer ou quando quer percorrer todos os elementos de uma sequência (como uma lista, string ou range).

A sintaxe básica é:

for variavel in sequencia:
    # código a ser repetido

Vamos ver alguns exemplos práticos:

Percorrendo uma lista de nomes:

nomes = ["Ana", "Bruno", "Carlos", "Diana"]
for nome in nomes:
    print(f"Olá, {nome}!")
Testar

Usando a função range() para números:

# Números de 0 a 4
for i in range(5):
    print(f"Número: {i}")

# Números de 1 a 10
for i in range(1, 11):
    print(f"Número: {i}")

# Números pares de 2 a 20
for i in range(2, 21, 2):
    print(f"Número par: {i}")
Testar

A função range() aceita três parâmetros: início, fim (não incluído) e passo. Dessa forma, você pode criar sequências numéricas personalizadas.

Loop while: repetindo enquanto uma condição for verdadeira

O loop while é usado quando você não sabe exatamente quantas repetições serão necessárias. Ele continua executando enquanto uma condição específica for verdadeira.

A sintaxe é:

while condicao:
    # código a ser repetido

Exemplo prático – contador:

contador = 1
while contador <= 5:
    print(f"Contagem: {contador}")
    contador += 1  # Incrementa o contador
Testar

Exemplo prático – validação de entrada:

senha = ""
while senha != "123456":
    senha = input("Digite a senha: ")
    if senha != "123456":
        print("Senha incorreta. Tente novamente.")

print("Senha correta! Acesso liberado.")
Testar

É fundamental sempre incluir uma forma de modificar a condição dentro do loop, caso contrário, você criará um loop infinito.

Para aprofundar seus conhecimentos sobre essas estruturas, confira nosso artigo:

Qual é a diferença entre for e while?

A escolha entre for e while depende do seu objetivo específico. Vamos esclarecer as principais diferenças:

CaracterísticaForWhile
Uso principalQuantidade conhecida de repetiçõesRepetir até uma condição ser atendida
Tipo de iteraçãoPercorre sequências (listas, strings, etc.)Baseado em condição lógica
ControleAutomático (Python gerencia)Manual (você controla a condição)
Risco de loop infinitoBaixoAlto (se não atualizar a condição)
LegibilidadeMais limpo para sequênciasMelhor para condições complexas

Quando usar FOR:

  • Percorrer listas, dicionários ou strings
  • Repetir um número específico de vezes
  • Iterar sobre arquivos ou dados estruturados

Quando usar WHILE:

  • Validar entrada do usuário
  • Repetir até uma condição ser atendida
  • Aguardar eventos externos
  • Implementar menus interativos

Exemplo comparativo:

# FOR - para contar de 1 a 5
for i in range(1, 6):
    print(i)

# WHILE - mesmo resultado, mas com mais controle
contador = 1
while contador <= 5:
    print(contador)
    contador += 1
Testar

Portanto, o for é mais direto e seguro para casos simples, enquanto o while oferece maior flexibilidade para situações complexas.

Tabela organizada mostrando diferenças entre loops for e while em Python

💡 Quer dominar não apenas loops, mas toda a base do Python? Conheça nosso curso gratuito Python para Iniciantes e saia do zero ao primeiro projeto!

Curso Gratuito

Seu primeiro projeto Python – curso grátis com certificado!

Vá do zero ao primeiro projeto em apenas 2 horas com o curso Python para Iniciantes.

Comece agora

Cuidados importantes ao usar loops

Embora as estruturas de repetição sejam poderosas, alguns cuidados são essenciais para evitar problemas.

Como evitar loops infinitos

O loop infinito é um dos erros mais comuns. Ele acontece quando a condição nunca se torna falsa:

# ERRO - Loop infinito!

contador = 1
while contador <= 10:
    print(contador)
    # Esqueceu de incrementar o contador!

Soluções:

  • Sempre modifique a variável de controle dentro do loop;
  • Use break para sair forçadamente quando necessário;
  • Defina condições de parada claras.
# CORRETO

contador = 1
while contador <= 10:
    print(contador)
    contador += 1  # Incrementa para evitar loop infinito
Testar

Performance com grandes volumes de dados

Para grandes quantidades de dados, considere estas práticas:

# Para listas muito grandes, use enumerate() em vez de range(len())

dados = [1, 2, 3, 4, 5] * 10000

# Menos eficiente
for i in range(len(dados)):
    print(f"Índice {i}: {dados[i]}")

# Mais eficiente
for indice, valor in enumerate(dados):
    print(f"Índice {indice}: {valor}")
Testar

Uso do break e continue

  • break: sai completamente do loop
  • continue: pula para a próxima iteração
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print("Números pares até encontrar o 7:")
for num in numeros:
    if num == 7:
        break  # Para o loop ao encontrar 7

    if num % 2 != 0:
        continue  # Pula números ímpares

    print(num)
Testar

Consequentemente, usar essas estruturas corretamente pode prevenir muitos problemas e melhorar significativamente a eficiência do seu código.

Desafios comuns para iniciantes (e como superá-los)

Começar com estruturas de repetição pode gerar algumas dúvidas. Vamos abordar os principais desafios e suas soluções.

Como escolher entre for e while?

A decisão entre for e while geralmente se resume a uma pergunta simples: você sabe quantas vezes o código deve repetir?

Use FOR quando:

  • Tiver uma quantidade definida de repetições;
  • Quiser percorrer todos os elementos de uma lista;
  • Precisar trabalhar com sequências numéricas.

Use WHILE quando:

  • A repetição depender de uma condição externa;
  • Não souber quantas iterações serão necessárias;
  • Quiser maior controle sobre o fluxo.

Dominando a indentação em Python

A indentação é crucial em Python. Todos os comandos dentro do loop devem estar alinhados:

# CORRETO

for i in range(3):
    print("Dentro do loop")
    print("Ainda dentro do loop")
print("Fora do loop")

# ERRO - Indentação inconsistente

for i in range(3):
    print("Dentro do loop")
        print("Erro de indentação!")  # Muito recuado

Dica: configure seu editor de código para mostrar espaços e use sempre 4 espaços por nível de indentação.

Combinando loops com condicionais

Frequentemente, você precisará usar estruturas condicionais dentro dos loops:

numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
pares = []
impares = []

for numero in numeros:
    if numero % 2 == 0:
        pares.append(numero)
    else:
        impares.append(numero)

print(f"Números pares: {pares}")
print(f"Números ímpares: {impares}")
Testar

Para dominar completamente essa combinação, recomendo ler nosso artigo:

Screenshot de código Python mostrando estrutura de repetição em funcionamento

🚀 Quer praticar esses conceitos com projetos reais? Nossa trilha de cursos Aprendendo Python oferece exercícios progressivos para fixar seu aprendizado! 

Para entender melhor como estruturas de dados como listas e dicionários funcionam com loops, confira o artigo: 

Como dar o primeiro passo para dominar estruturas de repetição com Python

Se você chegou até aqui, já entende a importância das estruturas de repetição para automatizar tarefas e criar soluções eficientes. Mas que tal transformar esse conhecimento teórico em prática real?

Em resumo, as estruturas de repetição são ferramentas essenciais que permitem:

  • Automatizar tarefas repetitivas;
  • Processar grandes volumes de dados;
  • Criar soluções mais eficientes e livres de erros;
  • Economizar tempo significativo no desenvolvimento.

Como resultado do aprendizado dessas estruturas, você será capaz de criar programas mais sofisticados e resolver problemas complexos do mundo real.

Nosso curso gratuito Python para Iniciantes: do zero ao primeiro projeto foi criado especialmente para quem está começando e quer aprender programação de forma prática e aplicada. Você vai sair do zero e criar seu primeiro projeto funcional, dominando não apenas loops, mas toda a base necessária para se tornar um programador Python.

🎯 O que você vai aprender:

  • Estruturas de repetição na prática;
  • Projetos reais que usa no dia a dia;
  • Automações que economizam horas de trabalho;
  • Base sólida para avançar na programação.

Finalmente, lembre-se de que programar é uma habilidade que se desenvolve com prática. Comece com exercícios simples e, gradualmente, trabalhe com projetos mais complexos.

Dê o primeiro passo!

Curso Gratuito

Seu primeiro projeto Python – curso grátis com certificado!

Vá do zero ao primeiro projeto em apenas 2 horas com o curso Python para Iniciantes.

Comece agora

Imagem de um notebook

Cursos de programação gratuitos com certificado

Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:

  • Conteúdos gratuitos
  • Projetos práticos
  • Certificados
  • +20 mil alunos e comunidade exclusiva
  • Materiais didáticos e download de código
Inicie agora

Comentários

30xp
Comentar
Faça parte da discussão Crie sua conta gratuita e compartilhe
sua opinião nos comentários
Entre para a Asimov