Vídeo em breve
Por enquanto, esta aula está disponível só em texto — o vídeo entra assim que ficar pronto.
Estruturas de controle
Laços de repetição: for e while
Repetindo tarefas com for e while, range() completo, break, continue, laços aninhados e como evitar o clássico loop infinito. · 19 min
Materiais complementares
Esta é a última aula do curso: laços de repetição, para quando você precisa executar o mesmo bloco de código várias vezes sem copiar e colar.
for: repetir um número conhecido de vezes
for i in range(5):
print(f"Repetição número {i}")
range(5) gera os números de 0 a 4. É o jeito mais comum de repetir
“N vezes” em Python.
range() com início, fim e passo
range() aceita até três argumentos: range(inicio, fim, passo).
for i in range(2, 6): # de 2 até 5 (fim não entra, igual no fatiamento de listas)
print(i) # 2, 3, 4, 5
for i in range(0, 10, 2): # de 0 até 9, pulando de 2 em 2
print(i) # 0, 2, 4, 6, 8
for i in range(10, 0, -1): # contagem regressiva
print(i) # 10, 9, 8, ..., 1
for percorrendo uma lista
frutas = ["maçã", "banana", "laranja"]
for fruta in frutas:
print(f"Gosto de {fruta}")
while: repetir enquanto uma condição for verdadeira
tentativas = 0
senha_correta = "python123"
senha = ""
while senha != senha_correta and tentativas < 3:
senha = input("Digite a senha: ")
tentativas += 1
if senha == senha_correta:
print("Acesso liberado!")
else:
print("Muitas tentativas erradas.")
Atenção
Todo while precisa de algo que eventualmente torne a condição falsa
(aqui, tentativas < 3). Esquecer isso é a causa número um de loop
infinito — se o programa “travar”, é o primeiro lugar para checar.
Dica
Regra prática: use for quando você sabe quantas vezes (ou sobre o que)
vai repetir. Use while quando a repetição depende de uma condição que
só se resolve durante a execução.
Interrompendo ou pulando uma repetição: break e continue
Às vezes você quer sair do laço antes da hora, ou pular só a volta atual. São dois comandos diferentes para dois casos diferentes:
# break: para o laço completamente
for numero in range(1, 100):
if numero == 5:
break # sai do for assim que numero chega a 5
print(numero) # imprime 1, 2, 3, 4 e para
# continue: pula só esta volta, o laço continua
for numero in range(1, 6):
if numero == 3:
continue # pula o print quando numero é 3, mas o for continua
print(numero) # imprime 1, 2, 4, 5 (o 3 é pulado)
Dica
break é comum em buscas: percorrer uma lista procurando um item e
parar assim que ele for encontrado, em vez de continuar checando o
resto da lista à toa.
break e continue funcionam igual dentro de um while — a diferença é
só qual tipo de laço eles interrompem/pulam.
Laços dentro de laços (laços aninhados)
Assim como o if, um for pode conter outro for dentro dele. É comum
para percorrer uma “tabela” (linhas e colunas):
for linha in range(3):
for coluna in range(3):
print(f"({linha}, {coluna})", end=" ")
print() # pula para a próxima linha depois de terminar as colunas
Atenção
Cuidado com o custo de laços aninhados: o for de dentro roda inteiro
para cada volta do for de fora. Duas repetições de 100 aninhadas fazem
10.000 voltas no total, não 200 — vale pensar nisso antes de aninhar
laços grandes.
Exercícios
Exercício
1. Aquecimento. Escreva um programa que soma todos os números de 1 a
100 usando um for, e imprime o resultado (a resposta certa é 5050 —
use para conferir).
Exercício
2. Combinando com if. Percorra os números de 1 a 30 com um for e,
para cada um, imprima “Fizz” se for múltiplo de 3, “Buzz” se for
múltiplo de 5, “FizzBuzz” se for múltiplo dos dois, ou o próprio número
caso contrário. (Esse exercício clássico usa tudo que você viu no curso
até aqui: variáveis, operadores, condicionais e laços.)
Exercício
3. Com break. Percorra os números de 2 a 50 com um for procurando
o primeiro número divisível por 7 e por 3 ao mesmo tempo. Assim que
encontrar, imprima o número e use break para parar — sem continuar
checando o resto à toa.
Exercício
4. Desafio. Use um while para simular um caixa eletrônico simples:
peça um valor a sacar, e enquanto o valor for maior que zero, “entregue”
a maior nota possível (100, 50, 20, 10, 5 ou 2) e subtraia do total
restante, imprimindo cada nota entregue. Pare quando o valor restante
chegar a zero.
Com isso, você já tem o essencial para escrever programas que decidem e repetem — a base de praticamente tudo que vem depois, incluindo as próximas trilhas do site: robótica e IA usam exatamente essas mesmas estruturas, só que aplicadas a sensores, motores e modelos.