Criando um gerador de CPF randômico

Nesse post você vai aprender o passo a passo de como criar uma classe geradora de CPF's aleatórios matematicamente válidos.

Em primeiro lugar você precisará importar o módulo random que é nativo do python e iniciar uma classe:

import random
class GeradorCpf: def __init__(self): pass

Vamos precisar de 3 funções para nossa classe funcionar:

1) Função encontrando_digito(), com base nos 9 primeiros dígitos, retorna os dois últimos dígitos do CPF:

#Função para encontrar os dois ultimos digitos do CPF.
def encontrando_digito(self, cut_cpf):
    MULT_CPF = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2]
    if len(cut_cpf) == 9:
        MULT_CPF = MULT_CPF[1:10]

    mult = [x * y for x, y in zip(cut_cpf, MULT_CPF)]
    soma = sum(mult)
    digito = 11 - (soma % 11)
    if digito > 9:
        digito = 0
    return digito

2) Função inserindo_caracteres(), para inserir os caracteres especiais do CPF:

#Função para adicionar os caracteres especiais do CPF.
def inserindo_caracteres(self, cpf): return f'{cpf[0:3]}.{cpf[3:6]}.{cpf[6:9]}-{cpf[9:11]}'

3) Função geradora(), para gerar os 9 primeiros dígitos do CPF e usar as outras duas funções para retornar o CPF válido:

#Função para gerar 9 números aleatórios de 1 a 9 e gerar o CPF.
def geradora(self): randomico = [random.randint(1, 9) for x in range(9)] #encontrando o primeiro digito primeiro_digito = self.encontrando_digito(randomico) randomico.append(primeiro_digito) #encontrando o segundo digito segundo_digito = self.encontrando_digito(randomico) randomico.append(segundo_digito) #transformando a lista em string. cpf = "".join(map(str, randomico)) #inserindo os caracteres especiais. cpf = self.inserindo_caracteres(cpf) return print(cpf)

Crie um objeto e chame a função geradora():

app = GeradorCpf()
app.geradora()

Segue o link para acessar o código na integra: Código

Pronto.

Agora pode gerar CPF's matematicamente válidos direto do seu console, aproveite!!!

Comentários

Formulário de contato

Nome

E-mail *

Mensagem *

Minha foto
Gustavo Câmara
Olá, meu nome é Gustavo e sou Analista de Dados, Desenvolvedor, Estudante de Engenharia de Software e apaixonado por tecnologia.

Postagens mais visitadas