Solução do exercício - Gerar o segundo dígito de um CPF com Python
This commit is contained in:
26
aula62.py
26
aula62.py
@@ -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')
|
||||||
|
|||||||
Reference in New Issue
Block a user