O que é o while em Python?
O while é uma estrutura de controle de fluxo usada para repetir um bloco de código enquanto uma condição for verdadeira. Diferente do for, que itera sobre uma sequência pré-definida, o while avalia uma condição antes de cada execução, sendo ideal para situações em que o número de repetições não é conhecido antecipadamente.
Por exemplo, você pode usar o while para continuar solicitando a entrada de um usuário até que ele forneça um dado válido.
Sintaxe do while em Python
A sintaxe do while em Python é simples e fácil de entender:
while condição:
# bloco de código a ser executado
Explicação dos elementos:
- Condição: Uma expressão booleana que, enquanto for verdadeira, manterá o loop em execução.
- Bloco de código: O conjunto de instruções que será repetido.
Exemplo simples:
contador = 0
while contador < 5:
print(contador)
contador += 1
Neste exemplo, o loop while imprime os números de 0 a 4. A variável contador
é incrementada a cada iteração, garantindo que o loop termine quando contador
atingir 5.
Exemplos básicos de while em Python
Exemplo 1: Contagem regressiva
numero = 10
while numero > 0:
print(numero)
numero -= 1
print("Fogo!")
Neste caso, o loop conta de 10 até 1 antes de exibir “Fogo!”.
Exemplo 2: Entrada do usuário
resposta = ""
while resposta != "sair":
resposta = input("Digite algo (ou 'sair' para encerrar): ")
print(f"Você digitou: {resposta}")
O programa continua pedindo entrada até que o usuário digite “sair”.
Usando o break e o continue no while
O comando break
O break é usado para interromper um loop antes que a condição seja falsa.
while True:
dado = input("Digite 'ok' para sair: ")
if dado == "ok":
break
print("Loop encerrado!")
Neste exemplo, o loop termina assim que o usuário digitar “ok”.
O comando continue
O continue pula para a próxima iteração sem executar o restante do bloco de código atual.
contador = 0
while contador < 10:
contador += 1
if contador % 2 == 0:
continue
print(contador)
Este código imprime apenas os números ímpares de 1 a 9.
Como evitar loops infinitos no while
Um dos maiores perigos ao usar while é criar loops infinitos, que travam o programa. Para evitar isso:
- Verifique a condição: Certifique-se de que a condição do loop possa se tornar falsa.
- Atualize as variáveis de controle: Se o loop depende de uma variável, atualize-a adequadamente dentro do bloco.
- Teste o código: Sempre verifique se o loop funciona conforme o esperado.
Exemplo de loop infinito:
contador = 0
while contador < 5:
print("Este é um loop infinito!")
# A variável contador nunca é incrementada
Correção:
contador = 0
while contador < 5:
print("Contador:", contador)
contador += 1
Exemplos práticos e desafios com while
Exemplo 1: Simulando um menu
while True:
print("Menu:")
print("1. Opção 1")
print("2. Opção 2")
print("3. Sair")
escolha = input("Escolha uma opção: ")
if escolha == "3":
break
elif escolha == "1":
print("Você escolheu a opção 1!")
elif escolha == "2":
print("Você escolheu a opção 2!")
else:
print("Opção inválida.")
Exemplo 2: Gerador de sequência de Fibonacci
a, b = 0, 1
while b < 100:
print(b, end=" ")
a, b = b, a + b
O laço while em Python é uma ferramenta poderosa que permite a repetição controlada de ações. Com prática e atenção, você pode utilizá-lo para resolver problemas de forma eficiente e criativa!