Estruturas de Repetição em Python
Introdução
Estruturas de repetição, também conhecidas como loops, são blocos de código que permitem executar instruções repetidamente, até que uma condição específica seja atingida. Elas são fundamentais para automatizar tarefas repetitivas e processar coleções de dados.
- Entender os diferentes tipos de estruturas de repetição em Python
- Aprender a usar loops
forpara iteração sobre sequências - Dominar loops
whilepara repetições baseadas em condições - Compreender comandos de controle como
breakecontinue - Aplicar loops em situações práticas
Loop For
O loop for em Python é usado para iterar sobre uma sequência (como lista, tupla, dicionário, conjunto ou string) ou outros objetos iteráveis.
Sintaxe Básica
for item in sequência:
# código a ser executado para cada item
Iterando sobre uma Lista
frutas = ["maçã", "banana", "laranja"]
for fruta in frutas:
print(fruta)
Iterando sobre uma String
palavra = "Python"
for letra in palavra:
print(letra)
Função range()
A função range() é frequentemente usada com loops for para gerar uma sequência de números:
Conceito
# range(stop) - começa em 0, vai até stop-1
for i in range(5):
print(i) # Imprime 0, 1, 2, 3, 4
# range(start, stop) - começa em start, vai até stop-1
for i in range(2, 6):
print(i) # Imprime 2, 3, 4, 5
# range(start, stop, step) - começa em start, vai até stop-1, incrementando de step em step
for i in range(1, 10, 2):
print(i) # Imprime 1, 3, 5, 7, 9
Enumerate
A função enumerate() adiciona um contador a um iterável, retornando pares de índice e valor:
Conceito
animais = ["gato", "cachorro", "pássaro"]
for indice, animal in enumerate(animais):
print(f"Índice {indice}: {animal}")
# Saída:
# Índice 0: gato
# Índice 1: cachorro
# Índice 2: pássaro
Loop While
O loop while repete um bloco de código enquanto uma condição especificada for verdadeira:
Sintaxe Básica
while condição:
# código a ser executado enquanto a condição for verdadeira
Exemplo Simples
contador = 0
while contador < 5:
print(contador)
contador += 1 # Importante: incrementar o contador para evitar loop infinito
Sempre certifique-se de que a condição do loop while eventualmente se tornará falsa, caso contrário, você criará um loop infinito que só será interrompido forçando a interrupção do programa.
Controle de Fluxo em Loops
break
A instrução break interrompe a execução do loop, mesmo que a condição ainda seja verdadeira:
Conceito
for i in range(10):
if i == 5:
break # Sai do loop quando i é 5
print(i) # Imprime apenas 0, 1, 2, 3, 4
continue
A instrução continue pula a iteração atual e continua com a próxima:
Conceito
for i in range(10):
if i % 2 == 0: # Se i for par
continue # Pula para a próxima iteração
print(i) # Imprime apenas números ímpares: 1, 3, 5, 7, 9
else em Loops
Python permite usar uma cláusula else com loops. O bloco de código no else é executado quando o loop termina normalmente (sem break):
Conceito
for i in range(5):
print(i)
else:
print("Loop concluído normalmente")
# Com break
for i in range(5):
if i == 3:
break
print(i)
else:
print("Este texto não será impresso porque o loop foi interrompido por break")
Loops Aninhados
Podemos ter um loop dentro de outro loop, criando loops aninhados:
Conceito
# Criando uma matriz 3x3
for i in range(3): # Loop externo
for j in range(3): # Loop interno
print(f"({i},{j})", end=" ")
print() # Nova linha após cada linha da matriz
# Saída:
# (0,0) (0,1) (0,2)
# (1,0) (1,1) (1,2)
# (2,0) (2,1) (2,2)
Compreensão de Lista (List Comprehension)
Python oferece uma sintaxe concisa para criar listas baseadas em listas existentes, chamada list comprehension:
Conceito
# Forma tradicional com loop for
quadrados = []
for i in range(1, 6):
quadrados.append(i**2)
print(quadrados) # [1, 4, 9, 16, 25]
# Usando list comprehension
quadrados = [i**2 for i in range(1, 6)]
print(quadrados) # [1, 4, 9, 16, 25]
# List comprehension com condição
pares = [i for i in range(1, 11) if i % 2 == 0]
print(pares) # [2, 4, 6, 8, 10]
List comprehensions tornam o código mais conciso e frequentemente mais legível para operações simples. No entanto, para lógica complexa, um loop tradicional pode ser mais claro.
Exemplos Práticos
Calculando a Soma dos Números
Usando for
# Soma dos números de 1 a 10
soma = 0
for num in range(1, 11):
soma += num
print(f"A soma dos números de 1 a 10 é: {soma}") # 55
Usando while
# Soma dos números de 1 a 10
soma = 0
num = 1
while num <= 10:
soma += num
num += 1
print(f"A soma dos números de 1 a 10 é: {soma}") # 55
Encontrando Números Primos
Conceito
# Verificando se um número é primo
def eh_primo(n):
if n <= 1:
return False
if n <= 3:
return True
if n % 2 == 0 or n % 3 == 0:
return False
i = 5
while i * i <= n:
if n % i == 0 ou n % (i + 2) == 0:
return False
i += 6
return True
# Encontrando números primos de 1 a 20
primos = []
for i in range(1, 21):
if eh_primo(i):
primos.append(i)
print(f"Números primos de 1 a 20: {primos}") # [2, 3, 5, 7, 11, 13, 17, 19]
Iterando sobre Estruturas de Dados
Iterando sobre Dicionários
pessoa = {
"nome": "Ana",
"idade": 28,
"profissão": "Engenheira"
}
# Iterando sobre chaves
for chave in pessoa:
print(chave)
# Iterando sobre valores
for valor in pessoa.values():
print(valor)
# Iterando sobre pares chave-valor
for chave, valor in pessoa.items():
print(f"{chave}: {valor}")
Iterando sobre Listas Aninhadas
matriz = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# Acessando cada elemento da matriz
for linha in matriz:
for elemento em linha:
print(elemento, end=" ")
print() # Nova linha após cada linha da matriz
Resumo
Nesta aula, você aprendeu sobre:
- Loops
forpara iterar sobre sequências como listas, strings e ranges - Loops
whilepara repetições baseadas em condições - Comandos de controle como
breakecontinuepara modificar o fluxo do loop - Função
range()para gerar sequências numéricas - List comprehensions como uma forma concisa de criar listas
- Loops aninhados para trabalhar com estruturas de dados multidimensionais
Próximos Passos
Na próxima aula, aprenderemos sobre funções em Python, que nos permitem organizar o código em blocos reutilizáveis.