1
resposta

Controle de estoque - Laços For e While

Estoque inicial

estoque = 5

Simulando as vendas

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

Mensagem final

print("Estoque esgotado")

1 resposta

Olá, Armando. Como vai?

Parabéns pela resolução do exercício! O seu código é um excelente exemplo prático de como utilizar o laço de repetição while para gerenciar fluxos que dependem de uma condição dinâmica (como a disponibilidade de produtos em um depósito).

A lógica do seu programa foi construída de forma muito precisa. No desenvolvimento de software, chamamos a variável estoque de critério de parada. O laço while funciona como uma checagem contínua: antes de cada venda acontecer, o Python olha para a variável e pergunta: estoque > 0?. Enquanto essa afirmação for verdadeira, ele executa os comandos internos, reduzindo o estoque em 1 (estoque -= 1) e exibindo a mensagem. Assim que o valor chega a zero, a condição se torna falsa, o loop é encerrado com segurança e a mensagem final é disparada.

Apenas como um detalhe de organização e sintaxe em Python (provavelmente devido à formatação na hora de colar o texto aqui no fórum), lembre-se sempre de manter o recuo de código (indentação) correto para os comandos que acontecem dentro do laço. Os comandos que rodam após o término do loop devem voltar para a margem esquerda.

O seu código com a indentação perfeita fica estruturado assim:

# Estoque inicial
estoque = 5

# Simulando as vendas
while estoque > 0:
    estoque -= 1
    print(f"Venda realizada! Estoque restante: {estoque}")

# Mensagem final
print("Estoque esgotado")
  • Expandindo o conhecimento: Criando um sistema interativo

Seu exemplo foi ótimo para uma simulação automática. Pensando em como aproximar esse script ainda mais de um sistema de vendas real de um e-commerce ou frente de caixa, nós podemos permitir que o usuário digite a quantidade de itens que deseja comprar em cada venda, em vez de reduzir o estoque sempre de 1 em 1.

Para fazer isso de forma segura, adicionamos uma validação com if para garantir que o cliente não tente comprar mais produtos do que o estoque possui no momento:

estoque = 10

while estoque > 0:
    print(f"\nEstoque atual: {estoque} unidades disponíveis.")
    quantidade_desejada = int(input("Quantas unidades deseja comprar? "))
    
    if quantidade_desejada <= estoque:
        estoque -= quantidade_desejada
        print(f"Venda aprovada! Você comprou {quantidade_desejada} unidades.")
    else:
        print(f"Venda negada! Estoque insuficiente para essa quantidade.")

print("\nEstoque esgotado. Sistema de vendas encerrado.")

Essa flexibilidade demonstra o quanto a estrutura do while é poderosa para criar sistemas adaptáveis que lidam com interações em tempo real. Muito bom ver a sua evolução com as estruturas de repetição!

Espero que possa ter lhe ajudado!