Oii, tudo bem?
Seu código apresenta uma estrutura muito organizada, Matheus.
Você dividiu as responsabilidades em funções específicas, o que facilita a leitura e futuras alterações. É interessante notar que você foi além do exercício base ao criar uma função para "limpar" caracteres especiais, o que torna o programa mais amigável para o usuário final.
O que ficou muito bom
- Tratamento de strings: Ao usar o
replace, você permite que o usuário digite o CPF com pontos e traços (ex: 123.456.789-01), o que é um comportamento comum em sistemas reais. - Laço de repetição: O uso do
while garante que o programa não encerre até que uma entrada correta seja fornecida, melhorando a experiência de uso. - Organização: O uso do bloco
if __name__ == "__main__": é uma boa prática em Python para garantir que a função main() só rode se o script for executado diretamente.
O que pode melhorar:
No Python, evite comparar if variavel == True ou is not True. O modo mais limpo é usar a própria variável:
- Em vez de:
if conferir_cpf(cpf_limpo) is not True: - Use:
if not conferir_cpf(cpf_limpo):
Tabela Comparativa
| Aspecto | Sua Solução | Sugestão do Instrutor |
|---|
| Entrada | Limpa caracteres especiais | Exige apenas números |
| UX | Repete a pergunta até acertar | Valida uma única vez |
| Estrutura | Modular (várias funções) | Linear (função única) |
Seu caminho de separar a limpeza da validação é o que mais se aproxima de um software profissional.
Continue firme nos estudos.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!