Olá, Victor, como vai?
O seu código cumpre o objetivo de simular as vendas e atualizar o estoque até que ele se esgote. A lógica de decremento dentro do laço while está correta e a condição de parada atende ao que foi solicitado no exercício.
Uma observação técnica importante é sobre o uso da recursão, que é quando a função chama ela mesma ao final do bloco else. No cenário de um estoque pequeno isso não causa problemas, mas em sistemas maiores pode gerar um erro de limite de profundidade. Uma alternativa para tornar o código mais limpo é utilizar apenas o laço de repetição para controlar o fluxo, sem a necessidade de verificar a condição if antes do while ou chamar a função novamente.
Como exemplo, o uso do laço while de forma isolada simplifica a leitura.
estoque = 5
while estoque > 0:
estoque -= 1
print(f"Venda realizada! Estoque restante: {estoque}")
print("Estoque esgotado")
Parabéns por praticar os conceitos de estruturas de repetição e por compartilhar sua solução com a comunidade. Continue engajado nos estudos e em seus projetos.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!