Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/home/alpus/anaconda3/bin/python3
- # -*- coding: UTF-8 -*-
- import sys
- import re
- import matplotlib.pyplot as plt
- best_rank = -99999999999
- best_person = None
- data = dict()
- try:
- f = open("/home/alpus/Work/Rating/data", 'r');
- for line in f:
- person, rank = line.split()
- data[person] = int(rank)
- if int(rank) > best_rank:
- best_rank = int(rank)
- best_person = person
- except:
- pass
- maxlen = 10
- if len(sys.argv) == 1:
- for person in sorted(data, key=lambda x: -data[x]):
- symb = '>'
- if data[person] < 0:
- symb = '<'
- print(' ' * int(maxlen - len(person)) + person + '|' +
- symb * int(50 / best_rank * int(abs(data[person]))) + "| " + str(data[person]))
- elif len(sys.argv) == 2 and sys.argv[1] == 'add':
- print('Name: ', end = '')
- person = input()
- if len(person) > maxlen:
- print("Name should be shorter then", maxlen, "symbols!")
- exit()
- print('Points: ', end = '')
- points = input()
- if re.match('^-?\d+$', points) is not None:
- if person in data:
- data[person] += int(points)
- else:
- data[person] = points
- print('Now', person, 'has', data[person], 'points')
- else:
- print("It's not a number!")
- elif len(sys.argv) == 2 and sys.argv[1] == 'del':
- print('Name: ', end = '')
- person = input()
- if person not in data:
- print("Who is it?")
- exit()
- else:
- print(person, "and he's", data[person], "points deleted!")
- data.pop(person)
- elif len(sys.argv) == 2 and sys.argv[1] == 'ren':
- print('Old name: ', end = '')
- old_person = input()
- if old_person not in data:
- print("Who is it?")
- exit()
- print('New name: ', end = '')
- new_person = input()
- if len(new_person) > maxlen:
- print("Name should be shorter then", maxlen, "symbols!")
- exit()
- elif new_person in data:
- print("Name exists")
- exit()
- else:
- data[new_person] = data[old_person]
- data.pop(old_person);
- print('Name changed from', old_person, 'to', new_person)
- print('Now', new_person, 'has', data[new_person], 'points')
- elif len(sys.argv) == 2 and sys.argv[1] == 'his':
- plt.grid(True, )
- plt.barh(range(len(data)), sorted(data.values()), height=0.5, align='center')
- plt.xlabel('Rating')
- plt.yticks(range(len(data)), sorted(data, key=lambda x: data[x]))
- plt.tick_params(axis='both', labelsize=15)
- plt.show()
- else:
- print('nothing to check rating')
- print('"add" - to add some points to someone')
- print('"del" - to del someone from list')
- print('"his" - to show pretty histogram')
- print('"ren" - to rename someone')
- f = open('/home/alpus/Work/Rating/data', 'w')
- for person in data:
- f.write(person + ' ' + str(data[person]) + '\n');
- f.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement