-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
92 lines (74 loc) · 2.72 KB
/
main.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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
from random import randint
def gerar_cpf():
cpf = ''.join([str(randint(0, 9)) for _ in range(9)])
while len(cpf) != 11:
digito = sum([
int(cpf[index]) * multiplica
for index, multiplica in enumerate(reversed(range(2,
len(cpf) + 2)))
])
cpf += str(11 - (digito % 11)) if (11 - (digito % 11)) <= 9 else '0'
return f'{cpf[0:3]}.{cpf[3:6]}.{cpf[6:9]}-{cpf[9:]}'
def valida_cpf(cpf):
cpf = cpf.replace('.', '').replace('-', '').strip()
cpf_verifica = cpf
cpf = cpf[0:9]
while len(cpf) != 11:
digito = sum([
int(cpf[index]) * multiplica
for index, multiplica in enumerate(reversed(range(2,
len(cpf) + 2)))
])
cpf += str(11 - (digito % 11)) if (11 - (digito % 11)) <= 9 else '0'
return True if cpf == cpf_verifica and cpf != (str(cpf[0]) *
len(cpf)) else False
def valida_cnpj(cnpj):
cnpj = cnpj.replace('.', '').replace('/', '').replace('-', '').strip()
cnpj_verifica = cnpj
cnpj = cnpj[0:12]
while len(cnpj) != 14:
digito = 0
multiplica = 5 if len(cnpj) < 13 else 6
for n in cnpj:
digito += (int(n) * multiplica)
multiplica -= 1
multiplica = 9 if multiplica == 1 else multiplica
dv = 11 - (digito % 11)
cnpj += '0' if dv > 9 else str(dv)
return True if cnpj == cnpj_verifica and cnpj != (str(cnpj[0]) *
len(cnpj)) else False
def gerar_cnpj():
cnpj = ''.join([str(randint(0, 9)) for _ in range(12)])
cnpj = cnpj.replace('.', '').replace('/', '').replace('-', '').strip()
while len(cnpj) != 14:
digito = 0
multiplica = 5 if len(cnpj) < 13 else 6
for n in cnpj:
digito += (int(n) * multiplica)
multiplica -= 1
multiplica = 9 if multiplica == 1 else multiplica
dv = 11 - (digito % 11)
cnpj += '0' if dv > 9 else str(dv)
return f'{cnpj[0:2]}.{cnpj[2:5]}.{cnpj[5:8]}/{cnpj[8:12]}-{cnpj[12:]}'
while True:
try:
escolha = int(
input(
"Escolha uma opção:\n1 - Gerar CPF\n2 - Validar CPF\n3 - Gerar CNPJ\n4 - Validar CNPJ\n5 - Sair\n\n"
))
if escolha == 1:
print(f"\nCPF GERADO: {gerar_cpf()}\n")
elif escolha == 2:
cpf = input("Digite o CPF: ")
print(f"\nCPF Válido? {valida_cpf(cpf)}\n")
elif escolha == 3:
print(f"\nCNPJ GERADO: {gerar_cnpj()}\n")
elif escolha == 4:
cnpj = input("Digite o CNPJ: ")
print(f"\nCNPJ Válido? {valida_cnpj(cnpj)}\n")
elif escolha == 5:
break
else:
print("\nOpção inválida\n")
except:
print("\nOpção inválida\n")