Olá, Filipe. Como vai?
Excelente trabalho com este projeto! O controle de estoque é um cenário perfeito para entender a utilidade do laço while, pois representa um processo que deve continuar ocorrendo enquanto uma condição específica (ainda ter produtos) for verdadeira.
Sua solução está tecnicamente correta e bem estruturada. Vamos analisar os pontos principais da sua lógica:
- **Funcionamento do
while**: Diferente do for, que percorre uma lista pronta, o seu while estoque > 0 funciona como uma guarda que verifica o estoque antes de cada "venda". Enquanto houver pelo menos 1 item, o bloco de código interno será executado. - Atualização de Estado (Decremento): Você aplicou corretamente a linha
estoque = estoque - 1. Isso é vital para que o loop tenha um fim, garantindo que o valor diminua até que a condição estoque > 0 se torne falsa, evitando um loop infinito. - Mensagem de Encerramento: O
print("Estoque esgotado") está fora do bloco do while, o que é excelente. Ele só será lido após o estoque chegar a zero e o laço terminar, servindo como uma finalização clara.
Dica de Evolução:
Para deixar o programa mais interativo e profissional, você pode utilizar o operador de atribuição combinada para o decremento:
estoque = 5
while estoque > 0:
estoque -= 1 # Forma simplificada de estoque = estoque - 1
print(f"Venda realizada! Estoque restante: {estoque}")
print("Estoque esgotado")
Essa base que você construiu é fundamental para qualquer sistema de automação comercial ou gestão de dados dinâmicos. Continue com esse foco!
Espero que possa ter lhe ajudado!