#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