01 / 14
Lógica de Programação · Sem 9 · Aula 1/2

O Laço da
Receita

Quando você já sabe quantas vezes vai repetir — e tem uma coleção pra percorrer item por item.

ProfessorGuilherme Antunes CursoEnsino Médio Técnico — Informática Duração100 minutos (2 aulas)
02 / 14
Recap + Objetivos

Hoje você vai.

Na semana passada você aprendeu o while — laço condicional. Agora vamos ao for: o laço perfeito quando você já sabe quantas voltas dar, ou quando precisa percorrer uma coleção.

01

Reconhecer as partes do cabeçalho do for e seu fluxo

02

Escrever for ascendente, descendente e sobre coleções

03

Percorrer listas, tuplas e strings com for

04

Usar enumerate() e índices negativos

03 / 14
Introdução · Analogia

Receita de Bolo 🎂

Imagine seguir uma receita: a lista de ingredientes já está pronta, e você precisa passar por cada um e fazer algo:

  • Pega o primeiro ingrediente → mistura
  • Pega o segundo → mistura
  • … até o último item da lista

Você não precisa contar quantos são — a coleção já tem o tamanho dela. O for faz exatamente isso: percorre cada item de uma coleção até o fim.

RECEITA · Bolo Simples
▶ Misturando…farinha
✓ Misturadoaçúcar
✓ Misturadoovos
… aguardandoleite
… aguardandofermento
04 / 14
For × While

Sei quantas vs enquanto algo

FOR · LAÇO FIXO

Sei quantas vezes vou rodar

Usado quando o número de repetições já é conhecido (um intervalo, uma lista, uma string).

for i in range(5):
    print("Volta", i)
WHILE · LAÇO CONDICIONAL

Rodo enquanto algo for verdade

Usado quando não sabemos o número de repetições — depende de uma condição.

resposta = ""
while resposta != "sair":
    resposta = input("> ")

Hoje vamos focar no for.

05 / 14
Anatomia

Como se escreve um for?

O cabeçalho do for em Python tem 3 peças: a palavra for, uma variável de controle e um iterável:

for i in range(1, 4):
    print("Volta", i)

# i recebe 1, depois 2, depois 3
# o bloco indentado roda 3 vezes
# (o "fim" do range NÃO entra)
🧠 Variável de controle (i): recipiente temporário que recebe o próximo item a cada iteração. O escopo do laço é definido pela indentação em Python — tudo que estiver indentado faz parte do laço.
06 / 14
Mão na massa · Prática

🟢 Praticar: Chamada da Turma

Fácil

Situação: imprimir "Aluno 1", "Aluno 2"… até "Aluno 10". Sabemos exatamente quantas voltas: 10. For é a escolha óbvia.

for i in range(1, 11):
    print("Aluno", i)

# range(1, 11) gera 1, 2, 3, ... 10
# o 11 NÃO entra (fim exclusivo)
⚠️ Cuidado com o range: o segundo número é exclusivorange(1, 11) vai até 10, não 11. Se quer ir até N, escreva range(1, N+1).
07 / 14
Iteração sobre coleções

Percorrendo uma lista

O for em Python pega cada item da lista automaticamente — você não precisa mexer com índice nem com tamanho:

ingredientes = ["farinha", "açúcar", "ovos", "leite"]

for item in ingredientes:
    print("Adicionar:", item)

# Saída:
# Adicionar: farinha
# Adicionar: açúcar
# Adicionar: ovos
# Adicionar: leite
🧠 Vantagem do Python: for item in lista dispensa contar tamanho. O for funciona com qualquer iterável — listas, tuplas, strings, e muito mais.
08 / 14
Iteráveis em Python

String e tupla também são iteráveis

Uma string é uma sequência de caracteres. Uma tupla é uma lista que não pode ser alterada. O for percorre as duas igualzinho:

# Iterando uma STRING
nome = "PYTHON"

for letra in nome:
    print(letra)

# Saída:
# P
# Y
# T
# H
# O
# N
# Iterando uma TUPLA
cores = ("vermelho", "verde", "azul")

for cor in cores:
    print(cor)

# Saída:
# vermelho
# verde
# azul

Tupla usa parênteses ( ); lista usa colchetes [ ]. O for não liga — percorre ambas do mesmo jeito.

09 / 14
Função poderosa

enumerate() — índice + valor

E se você precisa do índice e do valor ao mesmo tempo? enumerate() entrega os dois automaticamente:

# SEM enumerate (manual)
ingredientes = ["farinha", "açúcar", "ovos"]
i = 0
for item in ingredientes:
    print(i, item)
    i += 1

# Saída:
# 0 farinha
# 1 açúcar
# 2 ovos
# COM enumerate (elegante)
ingredientes = ["farinha", "açúcar", "ovos"]

for i, item in enumerate(ingredientes):
    print(i, item)

# Saída:
# 0 farinha
# 1 açúcar
# 2 ovos
🧠 enumerate(lista) retorna em cada iteração uma tupla (índice, valor). Atalho perfeito para evitar o contador manual.
10 / 14
Atalho do Python

Índices negativos

Em Python, índice -1 é o último elemento, -2 é o penúltimo, e assim por diante:

P[0][-6]
Y[1][-5]
T[2][-4]
H[3][-3]
O[4][-2]
N[5][-1]
palavra = "PYTHON"
print(palavra[0])    # P  → primeiro
print(palavra[-1])   # N  → último
print(palavra[-2])   # O  → penúltimo
🧠 Por que isso ajuda? Você acessa o último item sem precisar saber o tamanho da coleção. Útil quando a lista pode mudar de tamanho.
11 / 14
Pause e responda

O que enumerate(lista) retorna em cada iteração?

AApenas os elementos da lista
BApenas os índices da lista
CUma tupla contendo (índice, elemento)
DUma string com índice e elementos concatenados

Discutam: em qual situação prática você precisa do índice E do valor ao mesmo tempo?

12 / 14
Mão na massa · Crie do zero

🟡 Lista de Compras Numerada 🛒

Médio

Situação: dada uma lista de produtos, imprima cada um numerado a partir de 1 (não de 0). Use enumerate + ajuste do índice.

Passo a passo — abra o VS Code e digitem:

  • Crie uma lista com 4 produtos do supermercado
  • Faça um for com enumerate(lista)
  • No print, mostre o índice + 1 (começa em 1, não em 0) e o produto
  • Bônus: imprima também o último item usando índice negativo
lista = ["pão", "leite", "café", "açúcar"]

for ...:
    print(...)   # mostre i+1 e produto

print("Último:", lista[...])
13 / 14
Resolução · Lista de Compras

Solução completa

lista = ["pão", "leite", "café", "açúcar"]

for i, produto in enumerate(lista):
    print(f"{i+1} - {produto}")

print("Último:", lista[-1])

# Saída:
# 1 - pão
# 2 - leite
# 3 - café
# 4 - açúcar
# Último: açúcar
🧠 Repare: em Python o índice nativo começa em 0, então usamos i+1 só para a apresentação ao usuário. E o lista[-1] pega o último sem saber o tamanho da lista.
14 / 14
Encerramento

O que aprendemos hoje

  • For × While → fixo (sei quantas) × condicional (rodo enquanto algo for verdade)
  • Cabeçalho do for → variável de controle + iterável + indentação define o escopo
  • Iterar coleções → for funciona em list, tuple, str sem precisar de índice manual
  • enumerate() → entrega (índice, valor) em cada iteração
  • Índices negativoslista[-1] pega o último; [-2], o penúltimo, e assim por diante
📚 Próxima aula

Dominar a função range(start, stop, step), criar passos variáveis e construir tabelas de multiplicação com loops aninhados.

❓ Pergunta de fechamento

Quando faz mais sentido usar for e quando faz mais sentido usar while? Dê um exemplo de cada da sua vida real.