Diego Brito
Morreremos e nunca saberemos o que é a vida!
Membro da equipe
Administrador
Parceiros
Melhor pôster do mês
Aprenda como validar CPF ou CNPJ em Python. Se você está criando um app ou software que precisa de uma validação desses documentos e o backend é em python.
Python:
import re
def limpar_numero(numero):
return re.sub(r'\D', '', numero)
def validar_cpf(cpf):
cpf = limpar_numero(cpf)
if len(cpf) != 11 or cpf == cpf[0] * 11:
return False
# Validação dos 2 dígitos verificadores
for i in range(9, 11):
soma = sum(int(cpf[num]) * ((i + 1) - num) for num in range(i))
digito = ((soma * 10) % 11) % 10
if digito != int(cpf[i]):
return False
return True
def validar_cnpj(cnpj):
cnpj = limpar_numero(cnpj)
if len(cnpj) != 14 or cnpj == cnpj[0] * 14:
return False
pesos1 = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
pesos2 = [6] + pesos1
# Primeiro dígito
soma = sum(int(cnpj[i]) * pesos1[i] for i in range(12))
digito1 = 11 - (soma % 11)
digito1 = digito1 if digito1 < 10 else 0
# Segundo dígito
soma = sum(int(cnpj[i]) * pesos2[i] for i in range(13))
digito2 = 11 - (soma % 11)
digito2 = digito2 if digito2 < 10 else 0
return cnpj[-2:] == f"{digito1}{digito2}"
def validar_documento(numero):
numero = limpar_numero(numero)
if len(numero) == 11:
return validar_cpf(numero)
elif len(numero) == 14:
return validar_cnpj(numero)
else:
return False
# 🚀 Exemplo de uso:
documento = input("Digite um CPF ou CNPJ: ")
if validar_documento(documento):
print("Documento válido!")
else:
print("Documento inválido!")
O que esse script faz:
- Aceita CPF ou CNPJ com ou sem máscara (., -, /).
- Faz a limpeza dos caracteres não numéricos.
- Valida os dígitos verificadores, conforme regras da Receita Federal.
- Detecta sequências inválidas (como 111.111.111-11 ou 00000000000000).