1
resposta

[Sugestão] Controle de estoque

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Alex. Como vai?

O seu código ficou excelente! A implementação do laço while estoque > 0: está perfeita para o cenário de controle de estoque. O uso do operador de atribuição subtrativa estoque -= 1 foi aplicado corretamente para decrementar o valor a cada venda simulada, e o console do PyCharm mostra que o fluxo rodou exatamente como esperado, finalizando com a mensagem fora do loop assim que o estoque zerou.

Para agregar ainda mais valor ao seu aprendizado sobre o laço while, vale a pena entender uma característica importante dele: o risco do loop infinito.

Como o while depende de uma condição ser verdadeira para continuar rodando, se por algum motivo esquecermos de alterar a variável de controle dentro do bloco (no seu caso, a linha estoque -= 1), a condição estoque > 0 seria verdadeira para sempre. Isso faria o programa travar, consumindo processamento continuamente. Por isso, garantir que a variável mude a cada repetição é uma excelente prática.

Complementando o seu exercício, imagine que em um sistema real as vendas acontecem de forma dinâmica e o usuário pode escolher quantos itens quer comprar de uma vez. Podemos evoluir o seu código adicionando uma entrada de dados (input) e uma verificação para garantir que o sistema não venda mais do que o disponível.

Veja esta sugestão de evolução para o seu código:

# Inicializa o estoque com 5 exemplares
estoque = 5

print(f"Bem-vindo ao sistema! Estoque atual: {estoque} unidades.\n")

# O loop continua executando enquanto houver livros no estoque
while estoque > 0:
    try:
        # Permite ao usuário escolher a quantidade desejada
        quantidade = int(input("Quantas unidades deseja comprar? "))
        
        # Verifica se há estoque suficiente para a venda
        if quantidade <= 0:
            print("Por favor, digite uma quantidade maior que zero.\n")
        elif quantidade <= estoque:
            estoque -= quantidade
            print(f"Venda realizada! Estoque restante: {estoque}\n")
        else:
            print(f"Não temos essa quantidade disponível. Estoque atual: {estoque}\n")
            
    except ValueError:
        print("Por favor, digite um número inteiro válido.\n")

# Mensagem final exibida fora do loop, após o estoque zerar
print("Estoque esgotado! Sistema encerrado.")

Com essa modificação, seu programa deixa de ser apenas uma simulação estática e passa a se comportar como um sistema interativo de verdade, tratando possíveis erros de digitação do usuário e respeitando o limite do estoque.

Parabéns pela dedicação e pela sequência de exercícios práticos que você vem desenvolvendo no PyCharm!

Espero que possa ter lhe ajudado!