Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá, Estudante. Como vai?
Seu código está muito bem escrito e aplica de forma correta o conceito do laço de repetição while. Esse tipo de estrutura é ideal para situações como o controle de estoque, onde o bloco de código deve ser executado enquanto uma condição específica (neste caso, estoque > 0) for verdadeira.
Gostaria de destacar alguns pontos técnicos interessantes da sua implementação e sugerir algumas melhorias para tornar o código ainda mais robusto:
estoque -= 1, que é uma forma elegante e simplificada de escrever estoque = estoque - 1. Isso é uma boa prática que deixa o código mais limpo.f"..." para formatar a mensagem de saída facilita a leitura e é a maneira mais eficiente de concatenar textos e variáveis em Python.while garante que o programa não entre em um loop infinito, pois a cada iteração o valor da variável de controle se aproxima da condição de saída (zero).Complemento e Boas Práticas:
Para avançar ainda mais, imagine que em um sistema real as vendas não acontecem necessariamente de uma em uma. Você poderia adaptar seu código para aceitar uma quantidade variável de vendas usando a função input().
Veja este exemplo de como ficaria:
estoque = 10
while estoque > 0:
venda = int(input(f"Estoque atual: {estoque}. Quantos itens deseja vender? "))
if venda <= estoque:
estoque -= venda
print(f"Venda realizada! Restam {estoque} itens.")
else:
print(f"Quantidade insuficiente! Você só tem {estoque} em estoque.")
print("Estoque esgotado. Reposição necessária!")
Neste exemplo acima, adicionamos uma verificação de segurança (if venda <= estoque) para garantir que o sistema não permita vender mais do que o que existe fisicamente no estoque, o que resultaria em números negativos.
Além disso, uma curiosidade do Python é que você também pode usar a cláusula else diretamente no while. O bloco dentro do else será executado assim que a condição do loop se tornar falsa:
while estoque > 0:
estoque -= 1
# ... código ...
else:
print("O loop terminou porque o estoque chegou a zero.")
Seu raciocínio lógico está no caminho certo. Continue praticando esses fundamentos, pois eles são a base para sistemas muito mais complexos!
Espero que possa ter lhe ajudado!
Ei Evandro, muito obrigada pelo elogio e pela dica!