1
resposta

[Projeto] Validando um CPF

#Arquivo main.py
from validador import validar_cpf

cpf = input('Digite seu CPF: ')

validar_cpf(cpf)

#arquivo validador.py
def validar_cpf(cpf: str) -> bool:

# Remove espaços e caracteres especiais
cpf_limpo = cpf.strip().replace('.', '').replace('-', '')

# Verifica se contém apenas números
if not cpf_limpo.isdigit():
    print('Erro: O CPF deve conter apenas números.')
    print('CPF inválido.')
    return False

# Verifica o tamanho
if len(cpf_limpo) != 11:
    print('Erro: O CPF deve ter exatamente 11 dígitos.')
    print('CPF inválido.')
    return False

# Rejeita CPFs com todos os dígitos iguais
if cpf_limpo == cpf_limpo[0] * 11:
    print('Erro: CPF inválido (todos os dígitos são iguais).')
    print('CPF inválido.')
    return False

# Calcula o primeiro dígito verificador
soma = sum(int(cpf_limpo[i]) * (10 - i) for i in range(9))
digito1 = (soma * 10 % 11) % 10

# Calcula o segundo dígito verificador
soma = sum(int(cpf_limpo[i]) * (11 - i) for i in range(10))
digito2 = (soma * 10 % 11) % 10

# Verifica se os dígitos conferem
if cpf_limpo[-2:] != f"{digito1}{digito2}":
    print('Erro: CPF inválido (dígitos verificadores incorretos).')
    print('CPF inválido.')
    return False

Se passou em todas as validações

print('CPF válido.')
return True

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Olá, EDUARDO! Tudo bem?

Parabéns pelo projeto de validação de CPF! Seu código ficou excelente, muito bem organizado e a lógica está toda correta.

A separação da função validar_cpf em um arquivo validador.py é uma ótima prática de organização de projetos, exatamente como o curso propõe. As validações que você implementou estão completas e na ordem certa: desde a limpeza da string, a verificação de tamanho e de dígitos repetidos, até o cálculo dos dois dígitos verificadores.

É um ótimo exemplo de um código limpo e funcional. Continue assim, aplicando os conceitos em projetos práticos. É a melhor forma de consolidar o conhecimento!

Bons estudos!

Sucesso

Imagem da comunidade