estoque = 5
while estoque > 0:
estoque -= 1
print(f"Venda realizada! Estoque restante: {estoque}")
print("Estoque esgotado")
estoque = 5
while estoque > 0:
estoque -= 1
print(f"Venda realizada! Estoque restante: {estoque}")
print("Estoque esgotado")
Olá, Juliana. Como vai?
O seu algoritmo de controle de estoque está excelente, direto ao ponto e logicamente impecável! O uso do laço while foi a escolha perfeita para esse cenário, pois você precisava repetir a ação de venda enquanto uma condição específica (estoque > 0) permanecesse verdadeira.
Analisando a estrutura do seu código, a ordem das instruções está ótima:
estoque -= 1 reduz corretamente uma unidade a cada iteração (venda).print logo em seguida reflete o estado real e atualizado do estoque.print("Estoque esgotado") está fora do escopo do while (sem indentação), garantindo que ele seja executado apenas uma vez, exatamente quando o laço quebrar.Para complementar os seus estudos e agregar ainda mais valor à sua jornada com Python, podemos pensar em como esse sistema evoluiria em um cenário real de e-commerce ou loja física.
No mercado, o estoque não costuma diminuir sozinho de um em um; a redução depende do comportamento de um cliente. Podemos simular isso transformando o seu código em um sistema interativo, onde o usuário escolhe a quantidade de itens que deseja comprar, e o programa valida se o estoque comporta essa venda antes de atualizá-lo.
Veja esse exemplo de refatoração aplicando essa boa prática:
estoque = 5
while estoque > 0:
print(f"\nEstoque atual disponível: {estoque}")
quantidade_desejada = int(input("Quantas unidades deseja comprar? "))
# Validação de negócio: o cliente não pode comprar mais do que tem disponível
if quantidade_desejada <= 0:
print("Quantidade inválida! Digite um valor maior que zero.")
elif quantidade_desejada <= estoque:
estoque -= quantidade_desejada
print(f"Venda de {quantidade_desejada} item(ns) realizada com sucesso!")
else:
print(f"Não foi possível realizar a venda. Estoque insuficiente para essa quantidade!")
print("\nEstoque completamente esgotado. Fim das operações.")
Curiosidade técnica: Observe que o laço while analisa a condição a cada nova rodada. Assim que o estoque chega a 0, ele nem inicia o próximo ciclo e pula direto para a mensagem final. Essa validação no topo é chamada de teste pré-remoto de condição.
Parabéns pela resolução limpa e correta da atividade!
Espero que possa ter lhe ajudado!
Aliás, para liberar as funcionalidades de todos os apps, ative a Atividade nos apps do Gemini.