-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvalidador_de_cnpj.py
48 lines (36 loc) · 1.11 KB
/
validador_de_cnpj.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
# -*- coding: utf-8 -*-
'''
Este modulo recebe o cnpj para que o mesmo possa ser validado
'''
import re
# função que remove os caracteres especiais do cnpj
def removeCht(cnpj):
return re.sub(r'[^0-9]','',cnpj)
#função que analisa o primeiro digito do cnpj
def firstdigit(fatia_cnpj):
cta = [5,4,3,2,9,8,7,6,5,4,3,2]
cnpj =[x*int(y) for x,y in zip(cta,fatia_cnpj)]
dig = 11-(sum(cnpj,0)%11)
if dig>=10:
dig= 0
cnpj_x = fatia_cnpj+str(dig)
return cnpj_x
#função que valida o segundo digito do cnpj
def secondDig(fatia_cnpj):
cta = [6,5,4,3,2,9,8,7,6,5,4,3,2]
cnpj =[x*int(y) for x,y in zip(cta,fatia_cnpj)]
dig = 11-(sum(cnpj,0)%11)
if dig>=10:
dig= 0
cnpj_x = fatia_cnpj+str(dig)
return cnpj_x
#função que efetivamente valida o cnpj, resposavel por chamar as outras funções
def validar(cnpj):
#primeiro digito
a =removeCht(cnpj)
b =firstdigit(a[:12])
cnpjy =secondDig(a[:13])
if a==cnpjy:
print(f'O cnpj {cnpj} é válido!')
else:
print(f'O cnpj {cnpj} é inválido! Verifique novamente')