Skip to content

Instantly share code, notes, and snippets.

@Anderson-Andre-P
Last active June 23, 2020 17:24
Show Gist options
  • Save Anderson-Andre-P/9ce4583e7153e11e122c93d65cebb4fe to your computer and use it in GitHub Desktop.
Save Anderson-Andre-P/9ce4583e7153e11e122c93d65cebb4fe to your computer and use it in GitHub Desktop.
print(f'\033[1;33m{"Algoritmo elaborado por Anderson André": ^60} \033[m \n'
f'\033[1;33m{"VALIDADOR DE CPF":-^60} \n\n'
f'Esse é um validador de CPF.\n'
f'1- Apenas números.\n'
f'2- Digitar os onze dígitos do CPF.\n'
f'3- Não será considerado números após o 11º digitado.\n'
f'4- Pra sair digite Sair.\033[m \n')
CPF = 0
while CPF != "Sair" or CPF != "sair":
print(f'{"INÍCIO":-^60}')
CPF = str(input("Digite seu CPF: "))
if CPF == "Sair" or CPF == "sair":
print("\033[4;33mVocê saiu da execução do algoritmo!\033[m")
exit()
try:
if len(CPF) <= 11:
conta_1 = contador = 0
for n in range(10, 0, -1):
while contador != 9:
x = n * int(CPF[contador])
conta_1 += x
contador += 1
break
resto_conta_1 = conta_1 % 11
if resto_conta_1 < 2:
digito_verificador_1 = 0
else:
digito_verificador_1 = 11 - resto_conta_1
conta_2 = contador = 0
for n in range(11, 0, -1):
while contador != 9:
x = n * int(CPF[contador])
conta_2 += x
contador += 1
break
digito_verificador_1_vezes_2 = digito_verificador_1 * 2
digito_verificador_1_mais_CPF = conta_2 + digito_verificador_1_vezes_2
resto_conta_2 = digito_verificador_1_mais_CPF % 11
if resto_conta_2 < 2:
digito_verificador_2 = 0
else:
digito_verificador_2 = 11 - resto_conta_2
if (int(CPF[9]) != digito_verificador_1) or (int(CPF[10]) != digito_verificador_2):
print("O CPF correto de acordo com os 9 primeiros números digitados seria: \n", CPF[0], CPF[1], CPF[2], ".",
CPF[3], CPF[4], CPF[5], ".", CPF[6], CPF[7], CPF[8], "-", digito_verificador_1, digito_verificador_2)
if (int(CPF[9]) == digito_verificador_1) and (int(CPF[10]) == digito_verificador_2):
print("\033[4;32mO número digitado é de um CPF válido.\033[m \n" f"{'FIM':-^60} \n")
else:
print("\033[4;31mO número digitado é de um CPF inválido.\033[m \n" f"{'FIM':-^60} \n")
else:
print("\033[4;31mVocê digitou muitos números, tente digitar um CPF válido.\033[m")
except ValueError:
print("\033[4;31mVocê não digitou apenas números.\033[m\n")
except IndexError:
print("\033[4;31mTamanho digitado inválido, muito curto.\033[m\n")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment