Ei, Willian! Tudo bem?
Você fez um ótimo trabalho ao controlar o estoque com if e while, parabéns! A lógica está clara e funcional, com uma validação interessante para o limite de livros. Uma observação: a variável restante é calculada antes da atualização do estoque, então pode mostrar um valor desatualizado se usada após a venda.
Uma sugestão é calcular o restante dentro do loop, garantindo que ele sempre reflita o valor mais atual. Veja este exemplo:
estoque = 5
quantidade = int(input('Quantos livros deseja comprar? '))
if quantidade > 0 and quantidade <= estoque:
while quantidade <= estoque and estoque > 0:
estoque -= quantidade
print(f"Venda realizada! Estoque restante {estoque}.")
break
else:
print('Quantidade invalida!')
if estoque == 0:
print('Estoque esgotado!')
Esse código usa estoque atualizado direto no print. Isso evita inconsistência na mensagem final. Faça os ajustes necessários e observe se funciona como esperado.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!