NicolasCGularte / Python

Aulas
0 stars 0 forks source link

Erro, erro e mais erro #2

Open NicolasCGularte opened 1 year ago

NicolasCGularte commented 1 year ago

import datetime

def cpf_valido(cpf): cpf = cpf.replace('.', '').replace('-', '') if len(cpf) != 11 or not cpf.isnumeric() or todos_numeros_iguais(cpf): return False numDV1 = recupera_primeiro_digito(cpf) numDV2 = recupera_segundo_digito(cpf, numDV1) return numDV1 == int(cpf[9]) and numDV2 == int(cpf[10])

verificar o número de caracteres do cpf

if len(CPF) < 11: difCPF = 11 - len(CPF) CPF = '0' * difCPF + CPF

verificar digitos iguais

def todos_numeros_iguais(cpf): numIG = 0 for i in range(0, 11): numIG += int(cpf[i]) i += 1 if int(cpf[0]) == numIG / 11: print('CPF inválido!')

capturar número digito verificador

numCheckDV1 = int(CPF[9:10]) numCheckDV2 = int(CPF[10:11])

calculo primeiro digito verificador

def recupera_primeiro_digito(cpf): numDV1 = 0 numCheckDV1 = int(CPF[9:10]) for i in range(1, 10): numDV1 = numDV1 + int(CPF[i-1:i]) * i

resto divisão por 11

numDV1 = numDV1 % 11

se número maior que 10 considerar 0

if (numDV1 == 10): numDV1 = 0

verificar primeiro digito

if numDV1 != numCheckDV1: print('Digito 1 inválido!')

digito verificadr 2

def recupera_segundo_digito(cpf, numDV1): numDV2 = 0 numCheckDV2 = int(CPF[10:11]) for i in range(2, 11): numDV2 = numDV2 + int(CPF[i-1:i]) * (i-1) numDV2 = numDV2 % 11

verificar segundo digito

if (numDV2 == 10): numDV2 = 0 if numDV2 != numCheckDV2: print('Digito 2 inválido!') if (numDV1 == numCheckDV1 and numDV2 == numCheckDV2): print('CPF válido!')

if name == 'main': print('Informe o CPF') cpf = str(input()) if cpf_valido(cpf): print('CPF é válido.') else: print('CPF inválido')

agora = datetime.datetime.now()
data_str = agora.strftime('%d/%m/%Y %H:%M')
print(data_str)