1
resposta

Prática - Controle de estoque

estoque = 5

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

print("Estoque esgotado.")

Saída:

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á, Aristóteles. Como vai?

Excelente exemplo prático do uso do laço while! Esse tipo de estrutura é fundamental para sistemas de automação onde não sabemos exatamente quantas vezes uma ação vai ocorrer, mas sabemos a condição que deve ser atendida para que ela pare.

No seu código, a condição estoque > 0 garante que as vendas só aconteçam enquanto houver produtos disponíveis. Vamos analisar alguns pontos técnicos interessantes da sua implementação:

1. O Operador de Atribuição Composta
Você utilizou o estoque -= 1. Essa é uma forma elegante e eficiente de escrever estoque = estoque - 1. Em programação, chamamos isso de decremento, e é o que faz com que a condição do while um dia se torne falsa, evitando um loop infinito.

2. Fluxo de Execução
Diferente do laço for, que geralmente percorre uma sequência definida, o while foca no estado da variável.

Dicas para expandir sua prática:

  • Simulando Reposição: Você poderia adicionar uma verificação dentro do laço ou logo após o fim dele para disparar um alerta de "Necessário repor estoque".
  • Controle de Entrada: Imagine que cada venda pudesse ter uma quantidade diferente. Você poderia transformar o valor fixo 1 em uma variável quantidade_venda e subtraí-la do estoque, garantindo que o valor não fique negativo.
venda = 2
if estoque >= venda:
    estoque -= venda

3. Mensagem Final
A última linha do seu código, print("Estoque esgotado."), está fora da indentação do while. Isso é uma ótima prática, pois garante que a mensagem só seja exibida uma única vez, exatamente após o encerramento do ciclo de vendas.

Continue explorando essas estruturas, pois o controle de fluxo é o coração de qualquer aplicação comercial!

Espero que possa ter lhe ajudado!