Pular para o conteúdo

A primeira escola especializada em tecnologia do Alto Solimões, com corpo técnico formado na área.

Módulo 3: Estruturas de Controle

For em Sequências, Break e Continue

Percorrendo listas, strings e controlando o loop

O que é o for em sequências?

O for não serve só com range(). Você pode percorrer qualquer sequência: listas, strings, tuplas. Com enumerate() você pega o índice é o valor ao mesmo tempo.

Para controlar o fluxo dentro do loop, use break para sair na hora e continue para pular para a próxima volta. Python ainda tem um recurso exclusivo: o else no loop, que roda quando o loop termina sem break.

Percorrendo listas e strings

Qualquer sequência funciona direto no for. Listas entregam cada item, strings entregam cada caractere:

frutas: list[str] = ["maçã", "banana", "laranja"]

for fruta in frutas:
print(f"Eu gosto de {fruta}")
# → Eu gosto de maçã
# → Eu gosto de banana
# → Eu gosto de laranja
# Strings também são sequências
for letra in "Python":
print(letra, end=" ")
# → P y t h o n

enumerate -- índice + valor

Quando você precisa saber a posição de cada item, enumerate() é o caminho:

frutas: list[str] = ["maçã", "banana", "laranja"]

for i, fruta in enumerate(frutas):
print(f"{i}: {fruta}")
# → 0: maçã
# → 1: banana
# → 2: laranja

Dá para começar de outro número com start:

alunos: list[str] = ["Ana", "Carlos", "Maria"]

for num, aluno in enumerate(alunos, start=1):
print(f"Aluno {num}: {aluno}")
# → Aluno 1: Ana
# → Aluno 2: Carlos
# → Aluno 3: Maria

break -- saindo do loop

O break encerra o loop imediatamente. Útil para buscas -- achou o que queria, sai fora:

números: list[int] = [10, 25, 37, 42, 58, 63]

for num in números:
if num == 42:
print(f"Achei o {num}!")
break
print(f"Verificando {num}...")
# → Verificando 10...
# → Verificando 25...
# → Verificando 37...
# → Achei o 42!

continue -- pulando para a próxima volta

O continue pula o resto da volta atual e vai direto para próxima iteração:

# Só números pares
for i in range(1, 11):
if i % 2 != 0:
continue
print(i, end=" ")
# → 2 4 6 8 10

break vs continue lado a lado

Visualizando a diferença:

print("--- break ---")
for i in range(1, 6):
if i == 3:
break # SAI do loop
print(i)
# → 1
# → 2

print("--- continue ---")
for i in range(1, 6):
if i == 3:
continue # PULA o 3
print(i)
# → 1
# → 2
# → 4
# → 5

else no loop -- recurso exclusivo do Python

O else no final de um for roda quando o loop termina sem break:

# Sem break → else executa
for i in range(5):
print(i, end=" ")
else:
print("\nTerminou normalmente!")
# → 0 1 2 3 4
# → Terminou normalmente!
# Com break → else NÃO executa
for i in range(5):
if i == 3:
break
print(i, end=" ")
else:
print("\nTerminou normalmente!") # não aparece!
# → 0 1 2

O uso perfeito do else e em buscas:

# Verificar se é primo
número: int = 17

for divisor in range(2, número):
if número % divisor == 0:
print(f"{número} NÃO é primo (divisivel por {divisor})")
break
else:
print(f"{número} E primo!")
# → 17 E primo!

Exercício prático

Dada uma lista de nomes, use for com enumerate e break/continue para:

  1. Numerar cada nome a partir de 1
  2. Pular nomes com menos de 4 letras (use continue)
  3. Parar ao encontrar um nome específico (use break)
nomes: list[str] = ["Ana", "Bruno", "Carlos", "Ed", "Diana", "Fabio"]

# 1. enumerate com start=1

# 2. if len(nome) < 4: continue

# 3. if nome == "Diana": break

Referências

Testa o que você leu

4 perguntas sobre esta aula. Errar aqui não custa nada - a explicação vem junto da correção.

Pergunta 1 de 4
O que `enumerate()` devolve a cada volta do laço?