Olá, Estudante. Como vai?
O seu código é um exemplo clássico e muito eficiente de como utilizar o laço while para monitorar estados que mudam ao longo do tempo. Você utilizou corretamente a estrutura de decremento estoque -= 1, que é a forma abreviada de escrever estoque = estoque - 1.
Para agregar mais valor ao seu estudo sobre laços de repetição, gostaria de destacar um conceito importante: a condição de parada. No seu código, a condição estoque > 0 garante que o loop nunca entre em uma execução infinita, pois em algum momento o valor chegará a zero e a expressão se tornará falsa.
Aqui estão algumas sugestões de boas práticas e complementos para esse tipo de lógica:
- Validação de Entrada: Em um sistema real, raramente vendemos apenas uma unidade por vez. Você poderia modificar o código para perguntar ao usuário quantos itens ele deseja comprar e subtrair esse valor, verificando se a quantidade solicitada está disponível.
- Uso do Operador de Atribuição: O uso de
-= é excelente. Python também suporta outros operadores similares, como += (adição), *= (multiplicação) e /= (divisão), que ajudam a manter o código limpo. - Prevenção de Estoque Negativo: Uma boa prática é garantir que o estoque nunca fique negativo. Embora o seu
while já trate isso, ao permitir vendas de múltiplas unidades, uma verificação extra com if seria prudente.
Veja um pequeno exemplo de como tornar seu código mais dinâmico:
estoque = 10
while estoque > 0:
quantidade = int(input(f"Temos {estoque} unidades. Quantas deseja comprar? "))
if quantidade <= estoque:
estoque -= quantidade
print(f"Venda de {quantidade} unidades realizada!")
else:
print(f"Ops! Você tentou comprar {quantidade}, mas só temos {estoque} em estoque.")
print("Estoque esgotado. Reposição necessária!")
Essa abordagem torna o controle de fluxo muito mais robusto para cenários do dia a dia no desenvolvimento web ou de sistemas.
Espero que possa ter lhe ajudado!