Skip to content

Instantly share code, notes, and snippets.

@lucascnr
Created November 18, 2016 19:36
Show Gist options
  • Save lucascnr/24c70409908a31ad253f97f9dd4c6b7c to your computer and use it in GitHub Desktop.
Save lucascnr/24c70409908a31ad253f97f9dd4c6b7c to your computer and use it in GitHub Desktop.
Gerador de CPF e CNPJ em Python
def generate_cpf(self):
cpf = [random.randint(0, 9) for x in range(9)]
for _ in range(2):
val = sum([(len(cpf) + 1 - i) * v for i, v in enumerate(cpf)]) % 11
cpf.append(11 - val if val > 1 else 0)
return '%s%s%s.%s%s%s.%s%s%s-%s%s' % tuple(cpf)
def generate_cnpj(self):
def calculate_special_digit(l):
digit = 0
for i, v in enumerate(l):
digit += v * (i % 8 + 2)
digit = 11 - digit % 11
return digit if digit < 10 else 0
cnpj = [1, 0, 0, 0] + [random.randint(0, 9) for x in range(8)]
for _ in range(2):
cnpj = [calculate_special_digit(cnpj)] + cnpj
return '%s%s.%s%s%s.%s%s%s/%s%s%s%s-%s%s' % tuple(cnpj[::-1])
@jtiagobsouza
Copy link

ele gera um cpf que não é valido

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment