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.
Objetivos de Aprendizado
- Entender os diferentes tipos de estruturas de repetição em Python
- Aprender a usar loops
for
para iteração sobre sequências - Dominar loops
while
para repetições baseadas em condições - Compreender comandos de controle como
break
econtinue
- 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.
Função range()
A função range()
é frequentemente usada com loops for
para gerar uma sequência de números:
# 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:
Loop While
O loop while
repete um bloco de código enquanto uma condição especificada for verdadeira:
Cuidado com Loops Infinitos
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:
continue
A instrução continue
pula a iteração atual e continua com a próxima:
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
):
Loops Aninhados
Podemos ter um loop dentro de outro loop, criando loops aninhados:
Compreensão de Lista (List Comprehension)
Python oferece uma sintaxe concisa para criar listas baseadas em listas existentes, chamada list comprehension:
# 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]
Dica
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
Encontrando Números Primos
# 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
Resumo
Nesta aula, você aprendeu sobre:
- Loops
for
para iterar sobre sequências como listas, strings e ranges - Loops
while
para repetições baseadas em condições - Comandos de controle como
break
econtinue
para 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
Recursos de aprendizado
Próximos Passos
Na próxima aula, aprenderemos sobre funções em Python, que nos permitem organizar o código em blocos reutilizáveis.