Loop For com Range
O que é o for com range?
O for repete um bloco de código um número determinado de vezes. Junto com range(), você controla exatamente quantas repetições quer, de onde começar e de quanto em quanto pular.
Pense no range() como um gerador de sequências numericas. Você define início, fim e passo, e ele entrega os números um por um para o for.
range com um argumento
Quando você passa só um número, o range começa em 0 e vai até esse número (sem incluir ele):
for i in range(5):
print(i, end=" ")
# → 0 1 2 3 4
Se não precisa da variável do loop, use _:
for _ in range(3):
print("Python!")
# → Python!
# → Python!
# → Python!
range com dois argumentos
Aqui você define o início é o fim. O início e incluso, o fim e exclusivo:
for i in range(1, 6):
print(i, end=" ")
# → 1 2 3 4 5
range com três argumentos
O terceiro argumento é o passo -- de quanto em quanto pular:
# Pares de 0 a 10
for i in range(0, 11, 2):
print(i, end=" ")
# → 0 2 4 6 8 10
# Impares de 1 a 9
for i in range(1, 11, 2):
print(i, end=" ")
# → 1 3 5 7 9
Contagem regressiva
Com passo negativo, você conta de tras para frente:
for i in range(10, 0, -1):
print(i, end=" ")
print("Lancar!")
# → 10 9 8 7 6 5 4 3 2 1 Lancar!
Acumuladores
Um padrão super comum: usar uma variável para ir somando ou multiplicando a cada volta do loop.
# Somar de 1 a 100
soma: int = 0
for i in range(1, 101):
soma += i
print(f"Soma: {soma}") # → Soma: 5050
# Fatorial (5! = 5 x 4 x 3 x 2 x 1)
n: int = 5
fatorial: int = 1
for i in range(1, n + 1):
fatorial *= i
print(f"{n}! = {fatorial}") # → 5! = 120
Loops aninhados
Um for dentro de outro. O loop interno roda completo a cada volta do externo:
# Tabuada do 1 ao 3
for i in range(1, 4):
print(f"\n--- Tabuada do {i} ---")
for j in range(1, 11):
print(f"{i} x {j:2d} = {i * j:3d}")
# Padrão de asteriscos
n: int = 5
for i in range(1, n + 1):
print("*" * i)
# → *
# → **
# → ***
# → ****
# → *****
While -- repetição com condição
Diferente do for, o while repete enquanto uma condição for verdadeira:
contador: int = 1
while contador <= 5:
print(f"Contagem: {contador}")
contador += 1
# → Contagem: 1
# → Contagem: 2
# → Contagem: 3
# → Contagem: 4
# → Contagem: 5
Exercício prático
Use for e range() para:
- Imprimir todos os multiplos de 3 entre 1 e 50
- Calcular a soma dos números pares de 1 a 100
- Criar uma contagem regressiva de 20 até 1 pulando de 2 em 2
# 1. Multiplos de 3: use range(3, 51, 3)
# 2. Soma dos pares: acumulador + range(2, 101, 2)
# 3. Contagem regressiva: range(20, 0, -2)
Referências
- for Statements -- documentação oficial do for
- range() -- documentação oficial do range
- Curso Python #09 - Estruturas de Repeticao (for) -- Curso em Video
Testa o que você leu
4 perguntas sobre esta aula. Errar aqui não custa nada - a explicação vem junto da correção.