Olá, Gabriel, como vai?
O seu código soluciona o desafio de maneira muito eficiente e organizada. O uso de funções e expressões lambda demonstra um bom domínio sobre a modularização do código, garantindo que cada parte do programa tenha uma responsabilidade única. A implementação do tratamento de erros com o bloco try-except para evitar entradas vazias é uma excelente prática de programação, pois torna a interação com o usuário mais robusta e menos propensa a falhas inesperadas.
Parabéns pelo empenho em criar uma solução tão completa e continue compartilhando seus progressos com a comunidade.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!