def valida_cpf():
while True:
cpf = input("Informe o seu CPF: ")
if len(cpf) != 11 or not cpf.isnumeric():
print("Dados inseridos incorretamente.\nDigite novamente.")
continue
cpf = cpf.replace('.', '').replace('-', '')
if len(cpf) == 11:
validar = True
digitos_verificadores = cpf[9:]
else:
validar = False
# Obter primeiro dígito:
# 1 - Multiplicar os 9 primeiros dígitos do CPF por uma contagem
# regressiva iniciando de 10 e terminando em 2
# 2 - Somar todos os valores das multiplicações do passo 1
# 3 - Obter o resto da divisão entre a soma e 11 do passo 2
# 4 - Subtrair o resultado do passo 3 por 11
# 5 - Se o resultado do passo 4 for maior que nove, o dígito é zero,
# caso contrário, o dígito é o valor do passo 4
# * Obter segundo dígito:
# 1 - Multiplicar os 9 primeiros dígitos do CPF, MAIS O PRIMEIRO DIGITO
# obtido anteriormente por uma contagem regressiva iniciando de 11
# e terminando em 2
# 2 - Mesma lógica do passo 2 do primeiro dígito em diante.
def valida_cpf(): while True: cpf = input("Informe o seu CPF: ") if len(cpf) != 11 or not cpf.isnumeric(): print("Dados inseridos incorretamente.\nDigite novamente.") continue cpf = cpf.replace('.', '').replace('-', '') if len(cpf) == 11: validar = True digitos_verificadores = cpf[9:] else: validar = False
# Obter primeiro dígito: # 1 - Multiplicar os 9 primeiros dígitos do CPF por uma contagem # regressiva iniciando de 10 e terminando em 2 # 2 - Somar todos os valores das multiplicações do passo 1 # 3 - Obter o resto da divisão entre a soma e 11 do passo 2 # 4 - Subtrair o resultado do passo 3 por 11 # 5 - Se o resultado do passo 4 for maior que nove, o dígito é zero, # caso contrário, o dígito é o valor do passo 4
cpf = cpf[:9] try: dig_1 = int(cpf[0]) 1 dig_2 = int(cpf[1]) 2 dig_3 = int(cpf[2]) 3 dig_4 = int(cpf[3]) 4 dig_5 = int(cpf[4]) 5 dig_6 = int(cpf[5]) 6 dig_7 = int(cpf[6]) 7 dig_8 = int(cpf[7]) 8 dig_9 = int(cpf[8]) * 9 except IndexError: print() print('Quantidade de caracteres incorreto.', end='\n\n') exit()
dig_1_ao_9_somados = (dig_1 + dig_2 + dig_3 + dig_4 + dig_5 + dig_6 + dig_7 + dig_8 + dig_9)
dig_10 = dig_1_ao_9_somados % 11 if dig_10 > 9: dig_10 = 0
# * Obter segundo dígito: # 1 - Multiplicar os 9 primeiros dígitos do CPF, MAIS O PRIMEIRO DIGITO # obtido anteriormente por uma contagem regressiva iniciando de 11 # e terminando em 2 # 2 - Mesma lógica do passo 2 do primeiro dígito em diante.
cpf += str(dig_10)
dig_1 = int(cpf[0]) 0 dig_2 = int(cpf[1]) 1 dig_3 = int(cpf[2]) 2 dig_4 = int(cpf[3]) 3 dig_5 = int(cpf[4]) 4 dig_6 = int(cpf[5]) 5 dig_7 = int(cpf[6]) 6 dig_8 = int(cpf[7]) 7 dig_9 = int(cpf[8]) 8 dig_10 = int(cpf[9]) 9
dig_1_ao_10_somados = (dig_1 + dig_2 + dig_3 + dig_4 + dig_5 + dig_6 + dig_7 + dig_8 + dig_9 + dig_10)
dig_11 = dig_1_ao_10_somados % 11 if dig_11 > 9: dig_11 = 0
valida_cpf()
Bah, não consigo....