Olá, Pedro, como vai?
O seu código demonstra um bom entendimento sobre a manipulação de dicionários e o uso de estruturas de repetição para validação de dados. A lógica de verificar se a chave existe antes de realizar a alteração está correta. Notei apenas um pequeno detalhe técnico na linha onde você recebe a variável qtd.
O Python interpreta as funções de dentro para fora, então ao colocar input(int(...)), o sistema tenta converter o texto do prompt em inteiro antes mesmo de o usuário digitar algo, o que causa um erro. Para que o programa funcione sem interrupções, a conversão para inteiro deve envolver toda a função de entrada.
O seu projeto está muito bem desenvolvido e você seguiu corretamente a lógica proposta pela atividade. Continue compartilhando suas resoluções conosco, pois a prática constante é fundamental para o aprendizado da programação.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!