Advertisement
Guest User

Untitled

a guest
Feb 8th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.45 KB | None | 0 0
  1. #!/home/alpus/anaconda3/bin/python3
  2. # -*- coding: UTF-8 -*-
  3.  
  4. import sys
  5. import re
  6. import matplotlib.pyplot as plt
  7.  
  8. best_rank = -99999999999
  9. best_person = None
  10. data = dict()
  11. try:
  12. f = open("/home/alpus/Work/Rating/data", 'r');
  13. for line in f:
  14. person, rank = line.split()
  15. data[person] = int(rank)
  16. if int(rank) > best_rank:
  17. best_rank = int(rank)
  18. best_person = person
  19. except:
  20. pass
  21.  
  22. maxlen = 10
  23. if len(sys.argv) == 1:
  24. for person in sorted(data, key=lambda x: -data[x]):
  25. symb = '>'
  26. if data[person] < 0:
  27. symb = '<'
  28. print(' ' * int(maxlen - len(person)) + person + '|' +
  29. symb * int(50 / best_rank * int(abs(data[person]))) + "| " + str(data[person]))
  30. elif len(sys.argv) == 2 and sys.argv[1] == 'add':
  31. print('Name: ', end = '')
  32. person = input()
  33. if len(person) > maxlen:
  34. print("Name should be shorter then", maxlen, "symbols!")
  35. exit()
  36. print('Points: ', end = '')
  37. points = input()
  38. if re.match('^-?\d+$', points) is not None:
  39. if person in data:
  40. data[person] += int(points)
  41. else:
  42. data[person] = points
  43. print('Now', person, 'has', data[person], 'points')
  44. else:
  45. print("It's not a number!")
  46. elif len(sys.argv) == 2 and sys.argv[1] == 'del':
  47. print('Name: ', end = '')
  48. person = input()
  49. if person not in data:
  50. print("Who is it?")
  51. exit()
  52. else:
  53. print(person, "and he's", data[person], "points deleted!")
  54. data.pop(person)
  55. elif len(sys.argv) == 2 and sys.argv[1] == 'ren':
  56. print('Old name: ', end = '')
  57. old_person = input()
  58. if old_person not in data:
  59. print("Who is it?")
  60. exit()
  61. print('New name: ', end = '')
  62. new_person = input()
  63. if len(new_person) > maxlen:
  64. print("Name should be shorter then", maxlen, "symbols!")
  65. exit()
  66. elif new_person in data:
  67. print("Name exists")
  68. exit()
  69. else:
  70. data[new_person] = data[old_person]
  71. data.pop(old_person);
  72. print('Name changed from', old_person, 'to', new_person)
  73. print('Now', new_person, 'has', data[new_person], 'points')
  74. elif len(sys.argv) == 2 and sys.argv[1] == 'his':
  75. plt.grid(True, )
  76. plt.barh(range(len(data)), sorted(data.values()), height=0.5, align='center')
  77. plt.xlabel('Rating')
  78. plt.yticks(range(len(data)), sorted(data, key=lambda x: data[x]))
  79. plt.tick_params(axis='both', labelsize=15)
  80. plt.show()
  81. else:
  82. print('nothing to check rating')
  83. print('"add" - to add some points to someone')
  84. print('"del" - to del someone from list')
  85. print('"his" - to show pretty histogram')
  86. print('"ren" - to rename someone')
  87.  
  88.  
  89. f = open('/home/alpus/Work/Rating/data', 'w')
  90. for person in data:
  91. f.write(person + ' ' + str(data[person]) + '\n');
  92. f.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement