Aula 07: Estruturas de Repetição (FOR e WHILE)
Objetivos de Aprendizagem
Ao final desta aula, você deve ser capaz de:
- Usar o laço
forpara iterar sobre sequências. - Usar
range()para gerar sequências numéricas. - Usar o laço
whilepara repetir enquanto uma condição for verdadeira. - Controlar laços com
breakecontinue. - Escolher entre
forewhilede acordo com o problema.
Conteúdo
1) Laço for
O laço for percorre cada elemento de uma sequência (lista, string, etc.).
frutas = ["maçã", "banana", "laranja"]
for fruta in frutas:
print(fruta)
Saída esperada:
maçã
banana
laranja
2) Função range()
range() gera uma sequência de inteiros, muito usada com for.
# range(fim): de 0 até fim-1
for i in range(5):
print(i) # 0, 1, 2, 3, 4
# range(inicio, fim): de inicio até fim-1
for i in range(2, 6):
print(i) # 2, 3, 4, 5
# range(inicio, fim, passo)
for i in range(0, 10, 2):
print(i) # 0, 2, 4, 6, 8
Exemplo: tabuada
def tabuada(numero):
for i in range(1, 11):
print(f"{numero} x {i} = {numero * i}")
tabuada(7)
3) Laço while
O laço while repete enquanto uma condição for True.
contador = 0
while contador < 5:
print(f"Contagem: {contador}")
contador += 1
Atenção: sempre garanta que a condição vai se tornar
Falseem algum momento, caso contrário o programa entra em loop infinito.
Exemplo: adivinha o número
import random
numero_secreto = random.randint(1, 10)
tentativa = 0
while tentativa != numero_secreto:
tentativa = int(input("Adivinhe (1-10): "))
if tentativa < numero_secreto:
print("Muito baixo!")
elif tentativa > numero_secreto:
print("Muito alto!")
print("Acertou!")
4) break — interromper o laço
break encerra o laço imediatamente, independente da condição.
for numero in range(1, 11):
if numero == 5:
break
print(numero)
# Imprime: 1, 2, 3, 4
Uso típico: busca em sequência
nomes = ["Alice", "Bob", "Carol", "Diana"]
busca = "Carol"
for nome in nomes:
if nome == busca:
print(f"Encontrado: {nome}")
break
5) continue — pular para a próxima iteração
continue pula o restante do corpo do laço e vai para a próxima iteração.
for numero in range(1, 11):
if numero % 2 == 0:
continue
print(numero)
# Imprime apenas os ímpares: 1, 3, 5, 7, 9
6) Quando usar for ou while?
| Situação | Recomendação |
|---|---|
| Iterar sobre uma coleção de elementos | for |
| Repetir um número fixo de vezes | for com range() |
| Repetir enquanto uma condição não for atingida | while |
| Número de repetições desconhecido antecipadamente | while |
7) Exemplos contextualizados
Exemplo A: soma de uma lista de notas
notas = [7.5, 8.0, 6.5, 9.0, 5.5]
soma = 0
for nota in notas:
soma += nota
media = soma / len(notas)
print(f"Média da turma: {media:.2f}")
Saída esperada: Média da turma: 7.30
Exemplo B: validação de entrada com while
idade = -1
while idade < 0 or idade > 120:
idade = int(input("Digite sua idade: "))
print(f"Idade válida: {idade}")
Exercícios (checkpoints)
- Use
forerange()para imprimir os números de 1 a 10.- Critério de verificação: todos os números de 1 a 10 devem aparecer, um por linha.
- Escreva um programa que soma os números de 1 a 100 usando
for.- Critério de verificação: o resultado deve ser
5050.
- Critério de verificação: o resultado deve ser
- Use
whilepara pedir ao usuário um número positivo, repetindo enquanto ele digitar um negativo.- Critério de verificação: o laço só deve encerrar quando o usuário digitar um valor
>= 0.
- Critério de verificação: o laço só deve encerrar quando o usuário digitar um valor
- Percorra uma lista de palavras e imprima apenas as que têm mais de 4 letras usando
continue.- Critério de verificação: palavras com 4 letras ou menos não devem aparecer.
- Use
forcombreakpara encontrar o primeiro número divisível por 7 no intervalo de 1 a 50.- Critério de verificação: o resultado deve ser
7.
- Critério de verificação: o resultado deve ser
- Crie uma função
contar_pares(lista)que retorna a quantidade de números pares na lista usandofor.- Critério de verificação: para
[1, 2, 3, 4, 5, 6], o resultado deve ser3.
- Critério de verificação: para
Referências
Principais
- Python Docs —
forStatements: https://docs.python.org/3/tutorial/controlflow.html#for-statements - Python Docs —
whileStatement: https://docs.python.org/3/reference/compound_stmts.html#the-while-statement - Python Docs —
range(): https://docs.python.org/3/library/stdtypes.html#range
Aprofundamento
- Real Python — Python
forLoops: https://realpython.com/python-for-loop/ - Real Python — Python
whileLoops: https://realpython.com/python-while-loop/