Solução do exercício - Gerar o segundo dígito de um CPF com Python

This commit is contained in:
Luiz Otávio
2022-10-30 20:28:31 -03:00
parent b1e283b5c5
commit a39197026b

View File

@@ -25,14 +25,30 @@ contrário disso:
O segundo dígito do CPF é 0 O segundo dígito do CPF é 0
""" """
# cpf = '36440847007' # Esse CPF gera o primeiro dígito como 10 (0) # cpf = '36440847007' # Esse CPF gera o primeiro dígito como 10 (0)
cpf = '74682489070' cpf_enviado_usuario = '74682489070'
nove_digitos = cpf[:9] nove_digitos = cpf_enviado_usuario[:9]
contador_regressivo_1 = 10 contador_regressivo_1 = 10
resultado_digito_1 = 0 resultado_digito_1 = 0
for digito_1 in nove_digitos: for digito in nove_digitos:
resultado_digito_1 += int(digito_1) * contador_regressivo_1 resultado_digito_1 += int(digito) * contador_regressivo_1
contador_regressivo_1 -= 1 contador_regressivo_1 -= 1
digito_1 = (resultado_digito_1 * 10) % 11 digito_1 = (resultado_digito_1 * 10) % 11
digito_1 = digito_1 if digito_1 <= 9 else 0 digito_1 = digito_1 if digito_1 <= 9 else 0
print(digito_1)
dez_digitos = nove_digitos + str(digito_1)
contador_regressivo_2 = 11
resultado_digito_2 = 0
for digito in dez_digitos:
resultado_digito_2 += int(digito) * contador_regressivo_2
contador_regressivo_2 -= 1
digito_2 = (resultado_digito_2 * 10) % 11
digito_2 = digito_2 if digito_2 <= 9 else 0
cpf_gerado_pelo_calculo = f'{nove_digitos}{digito_1}{digito_2}'
if cpf_enviado_usuario == cpf_gerado_pelo_calculo:
print(f'{cpf_enviado_usuario} é válido')
else:
print('CPF inválido')