Validar um CPF (Cadastro de Pessoas Físicas) manualmente pode ser trabalhoso e propenso a erros. Com um script Python, você automatiza o processo de verificação dos dígitos verificadores, garantindo precisão e eficiência em segundos.
O primeiro passo é criar uma função que receba um CPF como string e retorne True se for válido ou False caso contrário. A função deve limpar o CPF (remover pontos e traços) e verificar se todos os dígitos são iguais (situação inválida). Em seguida, aplica o algoritmo de validação dos dois dígitos verificadores.
def validar_cpf(cpf: str) -> bool:
# Limpar a string, removendo pontos e traços
cpf = ''.join(filter(str.isdigit, cpf))
# Verificar se o CPF tem 11 dígitos
if len(cpf) != 11:
return False
# Verificar se todos os dígitos são iguais
if cpf == cpf[0] * 11:
return False
# Calcular o primeiro dígito verificador
soma = sum(int(digit) * (10 - i) for i, digit in enumerate(cpf[:9]))
resto = soma % 11
digito1 = 0 if resto < 2 else 11 - resto
# Calcular o segundo dígito verificador
soma = sum(int(digit) * (11 - i) for i, digit in enumerate(cpf[:10]))
resto = soma % 11
digito2 = 0 if resto < 2 else 11 - resto
# Comparar os dígitos calculados com os informados
return digito1 == int(cpf[9]) and digito2 == int(cpf[10])
Agora, vamos testar a função com alguns CPFs de exemplo para garantir que ela funciona corretamente. Você pode executar o script diretamente ou importar a função em outro arquivo.
if __name__ == "__main__":
cpfs = [
"123.456.789-09", # Inválido
"529.982.247-25", # Válido
"111.111.111-11", # Inválido (todos dígitos iguais)
"529.982.247-2A" # Inválido (contém letra)
]
for cpf in cpfs:
resultado = "VÁLIDO" if validar_cpf(cpf) else "INVÁLIDO"
print(f"CPF: {cpf} -> {resultado}")
Veja abaixo uma tabela com exemplos de CPFs de entrada e o resultado esperado da validação:
| CPF de Entrada | Resultado Esperado |
|---|---|
| 529.982.247-25 | VÁLIDO |
| 123.456.789-09 | INVÁLIDO |
| 111.111.111-11 | INVÁLIDO |
| 529.982.247-2A | INVÁLIDO |
Com este script Python, você automatiza a validação de CPFs de forma rápida e confiável, eliminando a necessidade de cálculos manuais e reduzindo significativamente a chance de erros. A função é modular e pode ser facilmente integrada em sistemas maiores ou aplicações web para validar dados de usuários em tempo real.