# Filename: cpf.py Sintaxe: import cpf Felipe Tanii 2021 04 09
def inf(): # informacoes sobre
print("CPF = 11 digitos, d1 ao d8 = Atr. Receita Federal, d9 nono digito = UF")
print(" \
0- RS \n\
1- DF, GO, MS, MT, TO \n\
2- AC, AM, AP, PA, RO, RR \n\
3- CE, MA, PI \n\
4- AL, PB, PE, RN \n\
5- BA, SE \n\
6- MG \n\
7- ES, RJ \n\
8- SP \n\
9- PR, SC ")
print("Siglas: \
\nAC Acre \nAL Alagoas \nAP Amapá \
\nAM Amazonas \nBA Bahia \nCE Ceará \
\nDF Distrito Federal \nES Espírito Sant \nGO Goiás \
\nMA Maranhão \nMT Mato Grosso \nMS Mato Grosso do Sul \
\nMG Minas Gerais \nPA Pará \nPB Paraíba \
\nPR Paraná \nPE Pernambuco \nPI Piauí \
\nRJ Rio de Janeiro \nRN Rio Grande do Norte \nRS Rio Grande do Sul \
\nRO Rondônia \nRR Roraima \nSC Santa Catarina \
\nSP São Paulo \nSE Sergipe \nTO Tocantins \
\nDigitos verificadores = d10 e d11 ")
def val(cpf): # Validador de CPF pelo codigo verificador
''' val(str(11 digitos)), return "UF", "verificador", bool
Error: print(erro)
Sintaxe: cpf.val("12345678909") '''
UF = ["RS", "DF, GO, MS, MT, TO", "AC, AM, AP, PA, RO, RR", "CE, MA, PI", "AL, PB, PE, RN", "BA, SE", "MG", "ES, RJ", "SP", "PR, SC"]
d = cpf
V, d10, d11 = "", 0, 0
if d.isnumeric() and len(d) == 11:
L = 10*int(d[0])+9*int(d[1])+8*int(d[2])+7*int(d[3])+6*int(d[4])+5*int(d[5])+4*int(d[6])+3*int(d[7])+2*int(d[8])
c = L//11
r = L%11
if r == 0 or r == 1:
d10 = 0
else:
d10 = 11 - r
M = 10*int(d[1])+9*int(d[2])+8*int(d[3])+7*int(d[4])+6*int(d[5])+5*int(d[6])+4*int(d[7])+3*int(d[8])+2*d10
c = M//11
r = M%11
if r == 0 or r == 1:
d11 = 0
else:
d11 = 11 - r
if str(d10) == d[9] and str(d11) == d[10]:
V = True
else:
V = False
return UF[int(d[8])], str(d10) + str(d11), V
else:
print("(ERRO): Digite os 11 numeros!")
def testVal():
cpf = "12345678909"
print(val(cpf)) # exemplo: 123 456 789 09
return(val(cpf) == ('PR, SC', '09', True))
#print(testVal())
def gen(cpf): # Gerador de CPF (Digite qualquer numero de 9 digitos)
''' val(str(9 digitos)), return "UF", "CPF"
Error: print(erro)
Sintaxe: cpf.val("12345678909") '''
UF = ["RS", "DF, GO, MS, MT, TO", "AC, AM, AP, PA, RO, RR", "CE, MA, PI", "AL, PB, PE, RN", "BA, SE", "MG", "ES, RJ", "SP", "PR, SC"]
d = cpf
d10, d11 = 0, 0
if d.isnumeric() and len(d) == 9:
L = 10*int(d[0])+9*int(d[1])+8*int(d[2])+7*int(d[3])+6*int(d[4])+5*int(d[5])+4*int(d[6])+3*int(d[7])+2*int(d[8])
c = L//11
r = L%11
if r == 0 or r == 1:
d10 = 0
else:
d10 = 11 - r
M = 10*int(d[1])+9*int(d[2])+8*int(d[3])+7*int(d[4])+6*int(d[5])+5*int(d[6])+4*int(d[7])+3*int(d[8])+2*d10
c = M//11
r = M%11
if r == 0 or r == 1:
d11 = 0
else:
d11 = 11 - r
return UF[int(d[8])], cpf + str(d10) + str(d11)
else:
print("(ERRO): Digite os 9 numeros!")
def testGen():
cpf = "123456789"
print(gen(cpf)) # exemplo: 280 012 389 38
return(gen(cpf) == ('PR, SC', '12345678909'))
#print(testGen())
quinta-feira, 8 de abril de 2021
Gerador e Validador de CPF em python3
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário