Advertisement
Guest User

Luhn algo

a guest
Jun 17th, 2021
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. import random
  2.  
  3.  
  4. def main_menu(card_pin=None, card_number=None):
  5. print("1. Create an account")
  6. print("2. Log into account")
  7. print("0. Exit")
  8. user_input = int(input())
  9. print()
  10.  
  11. if user_input == 1:
  12. print("Your card has been created")
  13. card_number = random.randint(4000001111111111, 4000009999999999)
  14. print("This is your card number: ")
  15. print(int(card_number))
  16. verify_card_number(card_number)
  17. card_pin = random.randint(1001, 9999)
  18. print("Your card pin: ")
  19. print(int(card_pin))
  20. print()
  21. elif user_input == 2:
  22. print("Enter your card number: ")
  23. user_entered = int(input())
  24. print("Enter your PIN ")
  25. user_entered_pin = int(input())
  26. print()
  27.  
  28. if user_entered != card_number or user_entered_pin != card_pin:
  29. print("Wrong card number or PIN!")
  30. print()
  31. main_menu()
  32. else:
  33. print("You have successfully logged in!")
  34. print()
  35. login_menu()
  36.  
  37. else:
  38. print("Bye!")
  39. exit()
  40.  
  41.  
  42. def verify_card_number(card_number):
  43. check_sum = card_number % 10
  44. card_number = str(card_number)[:-1]
  45. card_number_list = [int(x) for x in str(card_number)]
  46. for i in range(len(card_number_list)):
  47. if i % 2 == 0:
  48. card_number_list[i] = card_number_list[i] + card_number_list[i]
  49.  
  50. for j in range(len(card_number_list)):
  51. if 9 < card_number_list[j]:
  52. card_number_list[j] = card_number_list[j] - 9
  53.  
  54. strings = [str(k) for k in card_number_list]
  55. string_of_num = "".join(strings)
  56. orig_card_number = int(string_of_num)
  57.  
  58. # Sum of digits
  59. sum_of_digit = 0
  60. for digit in str(orig_card_number):
  61. sum_of_digit += int(digit)
  62.  
  63. all_sum = sum_of_digit + check_sum
  64.  
  65. if all_sum % 10 == 0:
  66. return str(orig_card_number)
  67.  
  68.  
  69. def login_menu():
  70. print("1. Balance")
  71. print("2. Logout")
  72. print("0. Exit")
  73. print()
  74.  
  75. user_input_login_menu = int(input())
  76. if user_input_login_menu == 1:
  77. print("Balance: 0")
  78. print()
  79. elif user_input_login_menu == 2:
  80. print("You have successfully logged out")
  81. print()
  82. main_menu()
  83. elif user_input_login_menu == 0:
  84. print("Bye!")
  85. exit()
  86.  
  87.  
  88. while True:
  89. main_menu()
  90.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement