ragfica.pages.dev

Como verificar CPF válido usando script Python?

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.

Pré-requisitos

Passo 1: Criar a função de validação

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])

Passo 2: Testar a função com exemplos

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}")

Exemplo Prático

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

Conclusão

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.