Capítulo 04: Estruturas Repetitivas 🍄⭐
Neste capítulo, vamos aprender a repetir blocos de código usando os laços while e for, com o tema Super Mario!
📖 O que são Estruturas Repetitivas?
Servem para executar o mesmo bloco de código várias vezes, sem precisar escrevê-lo de novo. Também chamadas de loops ou laços.
Veja o fluxo do laço while do nosso exemplo:
graph TD A{"Moedas < 5?"} -->|Sim| B[Coletar Moeda] B --> C[Aumentar Contador] C --> A A -->|Não| D[Fim da Fase]
📖 Exemplo Guiado: Coleta de Moedas
Vamos criar um programa que simula o Mario coletando moedas até atingir o limite de 5 moedas usando o laço while.
- Crie o arquivo
coleta_moedas.pyna pastasrc/:
moedas = 0
while moedas < 5:
moedas += 1
print("Mario coletou uma moeda! Total:", moedas)
print("Parabéns! Você completou a fase!")🕹️ Como Executar e Testar no VS Code
- Abra o arquivo
coleta_moedas.py. - Clique no botão Run Python File.
Resultado Esperado:
Mario coletou uma moeda! Total: 1
Mario coletou uma moeda! Total: 2
Mario coletou uma moeda! Total: 3
Mario coletou uma moeda! Total: 4
Mario coletou uma moeda! Total: 5
Parabéns! Você completou a fase!🛠️ Prática Obrigatória 1: Contagem Regressiva
Crie um programa chamado contagem_bomba.py que faça uma contagem regressiva de 5 até 1 (usando for e range) para simular o tempo de explosão de uma bomba do Bob-omb.
🛠️ Prática Obrigatória 2: Soma de Moedas
Crie um programa chamado soma_moedas.py que pergunte ao usuário quantas moedas ele coletou em 3 fases diferentes e exiba o total acumulado (use um laço para ler os 3 valores).
🔑 Gabarito de Código
Prática 1: contagem_bomba.py
import time
print("Bob-omb vai explodir!")
for i in range(5, 0, -1):
print(i, "...")
time.sleep(1) # Pausa de 1 segundo
print("💥 CABUM!")Prática 2: soma_moedas.py
total_moedas = 0
for fase in range(1, 4):
moedas = int(input(f"Quantas moedas coletou na fase {fase}? "))
total_moedas += moedas
print("Total de moedas coletadas nas 3 fases:", total_moedas)📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
(Siga o mesmo padrão do Capítulo 01)