Olá, estudante, como vai?
Seu código apresenta uma lógica sólida para o tratamento de strings e limpeza de caracteres especiais antes da validação. A utilização do método replace para remover pontos e traços permite que o programa aceite diferentes formatos de entrada, tornando a experiência de uso mais flexível. O uso do bloco try-except demonstra uma boa prática de programação defensiva ao lidar com possíveis falhas de tipo.
Parabéns pelo empenho em resolver o desafio e por compartilhar sua solução.
Continue praticando e postando seus avanços. O fórum está à disposição.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!