Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. import sys, random, string
  2.  
  3. char2num = {
  4. 'A': 10,
  5. 'B': 11,
  6. 'C': 12,
  7. 'D': 13,
  8. 'E': 14,
  9. 'F': 15,
  10. 'G': 16,
  11. 'H': 17,
  12. 'I': 34,
  13. 'J': 18,
  14. 'K': 19,
  15. 'M': 21,
  16. 'N': 22,
  17. 'O': 35,
  18. 'P': 23,
  19. 'Q': 24,
  20. 'T': 27,
  21. 'U': 28,
  22. 'V': 29,
  23. 'W': 32,
  24. 'X': 30,
  25. 'Z': 33
  26. }
  27.  
  28. mulc = [1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1]
  29.  
  30. def check(s):
  31. n = []
  32. n.append(char2num[s[0]] // 10)
  33. n.append(char2num[s[0]] % 10)
  34. for i in range(1, len(s)):
  35. n.append(ord(s[i])-ord('0'))
  36. acc = 0
  37. for i, j in zip(n, mulc):
  38. acc += i * j
  39. return acc % 10 == 0
  40.  
  41. def gen():
  42. ch = random.choice(string.ascii_uppercase)
  43. gender = random.choice(['1', '2'])
  44. while True:
  45. t = ch + gender
  46. for _ in range(8):
  47. t += random.choice(string.digits)
  48. if check(t):
  49. return t
  50.  
  51.  
  52. def usage():
  53. print('{} {}'.format(sys.argv[0], '<ID>'))
  54.  
  55. def main():
  56. if '-g' in sys.argv:
  57. print(gen())
  58. sys.exit(0)
  59. else:
  60. if len(sys.argv) == 2:
  61. print('{} is {}'.format(sys.argv[1], 'Valid' if check(sys.argv[1]) else 'Invalid'))
  62. sys.exit(0)
  63.  
  64. usage()
  65.  
  66. if __name__ == '__main__':
  67. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement