1
resposta

10 Controle de estoque

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

1 resposta

Oii, Patricia.

Trabalhar com o laço while exige atenção redobrada à indentação, pois ela define exatamente o que faz parte da repetição e o que deve acontecer apenas no final. Notei que o comportamento do seu terminal mostra a mensagem "Estoque Esgotado" repetidas vezes, o que indica que ela entrou no ciclo de repetição.

Uma análise detalhada sobre como ajustar esse comportamento e como o Python interpreta essas linhas:

O Problema da Indentação:

No Python, o espaço no início da linha determina o bloco de código. No seu script atual, a linha 6 está alinhada com as linhas 4 e 5. Isso faz com que o computador entenda que "imprimir estoque esgotado" é uma tarefa que deve ser feita em cada venda.

Como corrigir

Pra que o aviso de esgotado apareça apenas quando o estoque chegar a zero (após o laço terminar), basta remover os espaços iniciais da linha 6.

estoque = 5

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

# Esta linha deve ficar fora do while (sem espaços extras)
print("Estoque Esgotado")

Operadores de Atribuição

Você utilizou o operador estoque -= 1. Ele ajuda a reduzir o valor da variável de forma direta. Sem essa linha, o programa entraria em um loop infinito, pois o valor do estoque nunca mudaria e a condição estoque > 0 seria sempre verdadeira.

Dica Prática

Ao observar o terminal, sempre que notar um comportamento repetitivo que deveria ser único, verifique se a linha de código não está "dentro" de um laço for ou while.

Conseguiu perceber como a posição da margem esquerda mudou completamente a lógica do que o usuário vê no final?

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!