1
resposta

Controle de estoque

Você está desenvolvendo um sistema de controle de estoque para o Buscante. Um dos requisitos é verificar a quantidade de exemplares de um livro em estoque e continuar vendendo até que o estoque se esgote. Sempre que uma venda é realizada, o sistema deve informar o usuário e atualizar a quantidade disponível.

Crie um programa que simule as vendas de um livro com o estoque inicial de 5 exemplares. O programa deve exibir a mensagem "Venda realizada! Estoque restante: " a cada venda e, ao final, exibir a mensagem "Estoque esgotado".

    estoque = 5

while estoque > 0:
    estoque -= 1
    print(f'Venda realizada! Estoque restante: {estoque}')

print("Estoque esgotado")
    
Venda realizada! Estoque restante: 4
Venda realizada! Estoque restante: 3
Venda realizada! Estoque restante: 2
Venda realizada! Estoque restante: 1
Venda realizada! Estoque restante: 0
Estoque esgotado

1 resposta

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!