Thomas
Adiministração do forum
Membro da equipe
Administrador
Um de Nós
Parceiros
Membro
Melhor pôster do mês
- Abr 28, 2025
- 76
- 466
- 53
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).