Olá, Andressa. Como vai?
Seu código ficou excelente e resolve perfeitamente o problema proposto pelo exercício! A escolha do laço while foi ideal para esse cenário, já que a repetição precisa continuar acontecendo enquanto uma determinada condição for verdadeira (neste caso, enquanto houver estoque disponível).
A ordem em que você realizou as operações — subtrair uma unidade do estoque (estoque -= 1) e logo em seguida exibir o print com o valor atualizado — garantiu que a contagem exibida no terminal ficasse 100% correta, indo de 4 até 0 de forma limpa.
Para complementar o seu aprendizado e trazer uma visão mais próxima de sistemas reais de controle de estoque, gostaria de compartilhar duas sugestões de melhorias e boas práticas:
1. Simulação de Entrada do Usuário (Vendas Dinâmicas)
Em um cenário real de e-commerce ou livraria como o Buscante, o cliente pode querer comprar mais de um exemplar de uma única vez. Podemos adaptar o seu laço while para perguntar quantos livros o usuário deseja comprar, validando se o estoque é suficiente antes de confirmar a venda:
estoque = 5
while estoque > 0:
print(f"\nEstoque atual: {estoque} exemplares.")
quantidade_desejada = int(input("Quantos exemplares deseja comprar? "))
if quantidade_desejada <= 0:
print("Quantidade inválida! Digite um valor maior que zero.")
elif quantidade_desejada <= estoque:
estoque -= quantidade_desejada
print(f"Venda realizada! Estoque restante: {estoque}")
else:
print(f"Não temos essa quantidade disponível. Limite de compra: {estoque} unidades.")
print("\nEstoque esgotado")
2. Uso de Constantes e Mensagens Claras
Quando trabalhamos com laços de repetição que dependem de decremento, manter o código com uma identação bem definida (como você fez muito bem) e usar variáveis com nomes claros ajuda outros programadores a entenderem o fluxo de parada imediatamente. O seu código atual já segue muito bem essa linha de legibilidade.
Parabéns pelo ótimo desempenho nos exercícios de laços de repetição! Você está avançando muito bem na lógica de programação com Python.
Espero que possa ter lhe ajudado!