fork download
  1. def cpf_entra():
  2. try:
  3. cpf = str(input("Informe o CPF(SOMENTE NÚMEROS): "))
  4. except ValueError as e:
  5. with open ( "erros.log" , "a" , encoding = "utf-8" ) as arquivo :
  6. agora = datetime.datetime.now ( )
  7. data_str = agora.strftime ( '%d/%m/%Y %H:%M' )
  8. arquivo.write ( f'Erro = {str ( e )}, {cpf}, {data_str}\n' )
  9. arquivo.close ( )
  10. print ( f'\033[31mCPF INVÁLIDO \033[m' )
  11. except Exception as e :
  12. print ( "Ocorreu um erro inesperado: " , e, type(e))
  13.  
  14. cpf_formatado = cpf[:3] + "." + cpf [3:6] + "." + cpf[6:9] + "-" + cpf[9:11]
  15. cpf = cpf_formatado.replace('.', '').replace('-', '')
  16. print('*' * 50)
  17. print(f"\033[32mO CPF informado foi :\033[m {cpf_formatado}")
  18. print('*' * 50)
  19. # gera e salva CPF no arquivo resultado.txt
  20. with open("resultado.txt", "a", encoding = "utf-8")as arquivo:
  21. aceito = 'Cpf VÁLIDO!'
  22. agora = datetime.datetime.now ( )
  23. data_str = agora.strftime('%d/%m/%Y %H:%M')
  24. arquivo.write(f'CPF = {str(cpf)}, {aceito}, {data_str}\n')
  25. arquivo.close()
  26.  
  27. if len(cpf) !=11:
  28. valido = 0
  29. for dig in range(0, 11):
  30. valido += int(cpf[dig])
  31. dig += 1
  32. if len(set(cpf)) == 1:
  33. raise ValueError("Todos os dígitos são IGUAIS!")
  34.  
  35.  
  36.  
  37.  
  38. def valida_10Dig(cpf , dg2 , data_str):
  39. soma = 0
  40. count = 10
  41. cpf = list(str(cpf))
  42. for i in range(0, len(cpf) - 2):
  43. soma = soma + cpf[i] * count
  44. i += 1
  45. count -= 1
  46. dg1 = 11 - (soma % 11)
  47. if dg1 >= 10:
  48. dg1 = 0
  49. if int(cpf[9]) != dg1 or int(cpf[10]) != dg2:
  50. with open("erros.log", "a", encoding = "utf-8") as arquivo:
  51. erro_3 = 'Digitos verificadores INVÁLIDOS!'
  52. arquivo.write(f'Erro = {str(erro_3)}, {cpf}, {data_str}\n')
  53. arquivo.close()
  54. print(f'\033[31mCPF INVÁLIDO\033[m')
  55. else:
  56. aceito = 'Cpf VÁLIDO!'
  57. print(f'\033[34m*** CPF VÁLIDO ***\033[m')
  58.  
  59.  
  60. def valida_11Dig(cpf, dg1, data_str):
  61. soma = 0
  62. count = 10
  63. cpf = list(str(cpf))
  64. for j in range(1, len(cpf) - 1):
  65. soma = soma + (int(cpf[j]) * count)
  66. j += 1
  67. count -= 1
  68. dg2 = 11 - (soma % 11)
  69. if dg2 >= 10:
  70. dg2 = 0
  71. if int(cpf[9]) != dg1 or int(cpf[10]) != dg2:
  72. with open("erros.log", "a", encoding = "utf-8") as arquivo:
  73. erro_3 = 'Digitos verificadores INVÁLIDOS!'
  74. arquivo.write(f'Erro = {str(erro_3)}, {cpf}, {data_str}\n')
  75. arquivo.close()
  76. print(f'\033[31mCPF INVÁLIDO\033[m')
  77. else:
  78. print(f'\033[34m*** CPF VÁLIDO ***\033[m')
Success #stdin #stdout 0.03s 9616KB
stdin
Standard input is empty
stdout
Standard output is empty