9.1 Loop Condicional
O loop for é perfeito para quando sabemos exatamente quantas vezes queremos executar um bloco de comandos. Mas isso nem sempre é o caso. Em cerca de metade das vezes, precisamos executar o bloco de comandos enquanto uma certa condição (regra) for verdadeira.
É exatamente para isso que Python tem o loop while. Ele é ainda mais simples que o for:
while condição:
comando1
comando1
comandoN
O loop será executado enquanto a condição for verdadeira.
Importante! Para evitar que o loop execute para sempre, algo dentro do bloco deve afetar a condição para que ela se torne falsa em algum momento e o loop termine.
Exemplo:
| Exemplo | Explicação |
|---|---|
|
O loop irá imprimir na tela os números 0 1 2 3 4 |
No loop while, duas coisas acontecem continuamente:
- A condição é verificada.
- O bloco de comandos é executado.
Se a condição for verdadeira, o bloco de comandos será executado. Se a condição for falsa (mesmo que o bloco não tenha sido executado uma única vez), o loop terminará.
Outro exemplo de loop while combinado com a entrada de uma quantidade indefinida de dados pelo usuário:
| Exemplo | Explicação |
|---|---|
|
O loop irá imprimir na tela todos os dados até que o usuário digite a palavra exit. Depois disso, o loop irá imprimir a palavra e terminar. |
9.2 Operador break
Em Python, o operador break é usado para encerrar imediatamente a execução de um loop while ou for. Esse operador é extremamente útil em situações onde é necessário sair do loop antes do término normal pela condição.
O uso do break aumenta a flexibilidade no controle do fluxo de execução do programa, permitindo reagir a condições que mudam dinamicamente durante a execução.
Uso principal:
for num in range(10):
if num == 5:
break # Encerra o loop assim que num atinge 5
print(num)
Nesse exemplo, o loop irá imprimir números de 0 a 4. Assim que num atinge 5, o loop é interrompido pelo operador break.
Uso em loops infinitos:
while True:
response = input("Digite 'exit' para sair: ")
if response == 'exit':
break
Aqui break é usado para sair de um loop infinito quando o usuário digita 'exit'.
O operador break também é frequentemente usado para interromper a execução de loops aninhados, lidar com situações excepcionais onde é necessário encerrar ações imediatamente, além de parar processos em aplicações multi-thread ou de rede.
Por exemplo, em tarefas de busca ou ordenação, onde após encontrar o elemento necessário, não faz sentido continuar o loop:
elements = [1, 2, 3, -99, 5]
# Busca pelo primeiro elemento negativo
for element in elements:
if element < 0:
print("Elemento negativo encontrado: ", element)
break
Melhores práticas incluem usar break com sabedoria, para não complicar a lógica do programa e não torná-lo difícil de entender. É uma boa prática comentar as razões para interromper o loop, especialmente se elas não forem óbvias a partir do contexto.
O uso de break deve ser justificado e razoável. Por exemplo, para melhorar a legibilidade e eficiência do código, e não apenas para "quebrar" a lógica. O uso eficaz desse operador pode melhorar significativamente o desempenho dos programas, especialmente em algoritmos com cálculos intensivos.
9.3 Operador continue
O operador continue em Python é uma ferramenta poderosa para controlar o fluxo de execução dos loops. Ele pula o restante do código na iteração atual do loop e passa para a próxima iteração. Esse operador é frequentemente usado em loops for e while para pular certas condições sem interromper o loop todo.
Noções básicas sobre o uso do operador continue
Veja como continue funciona em um loop simples:
for i in range(10):
if i % 2 == 0:
continue
print(i)
Nesse exemplo, o loop imprime apenas os números ímpares de 1 a 9. Toda vez que i é par (divisível por 2 sem resto), o operador continue é acionado, pulando a chamada da função print() e passando para a próxima iteração.
Uso do continue em cenários reais
Filtragem de dados: continue pode ser usado para filtrar dados antes de executar operações mais complexas no loop.
data = ["apple", "banana", "", "cherry", "date"]
for fruit in data:
if not fruit:
continue # Pular strings vazias
print(fruit.capitalize())
Pular condições específicas: Especialmente útil em situações onde é necessário pular certos elementos com base em condições complexas.
scores = [92, 85, 99, 78, 82, 100, 67, 88]
for score in scores:
if score < 80:
continue # Pular notas baixas
print("Parabéns, sua nota: ", score)
O operador continue em Python oferece uma maneira elegante de simplificar o código e torná-lo mais legível ao pular elementos irrelevantes nas iterações. O uso excessivo de continue pode complicar a compreensão de quais dados são processados pelo loop, especialmente em loops complexos com muitas condições. Mantenha um equilíbrio razoável.
GO TO FULL VERSION