-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgerarCPF.py
31 lines (26 loc) · 1014 Bytes
/
gerarCPF.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import random
def getGerarCPF():
novo_cpf = str([random.randint(0, 9) for _ in range(9)])
cpf = ''.join(filter(str.isdigit, novo_cpf))
lista = list(cpf)
#print(lista)
ncpf = [int(x) for x in lista]
# calcular primeiro digito verificador
soma = sum([i * v for i, v in enumerate(ncpf[::-1], start=2)])
primeiro_digito = 11 - (soma % 11)
if primeiro_digito > 9:
primeiro_digito = 0
ncpf.append(primeiro_digito)
# calcula o segundo digito verificador
soma = sum([i * v for i, v in enumerate(ncpf[::-1], start=2)])
segundo_digito = 11 - (soma % 11)
if segundo_digito > 9:
segundo_digito = 0
ncpf.append(segundo_digito)
# formata o CPF com string
novo_cpf = f'{ncpf[0:3]}.{ncpf[3:6]}.{ncpf[6:9]}-{ncpf[9:]}'
frm = ''.join(filter(str.isdigit, novo_cpf))
cpf_formatado = f'{frm[0:3]}.{frm[3:6]}.{frm[6:9]}-{frm[9:]}'
return cpf_formatado
if __name__ == "__main__":
print(getGerarCPF())