You can use the built in sorted function as well as a lambda function to sort the dictionary by the value instead of the dictionary key. Then we can simply go through a for loop to assign ranks. This code is probably not optimized but it works, you can maybe find out how to optimize the for loop on you own. The ranked dict will hold the peoples rank, you could also put this into a list if you wanted too.
sorted_by_value = sorted(learderboard, key = lambda x: leaderboard[x], reverse = True)
rank = 1
last_value = leaderboard[sorted_by_value[0]]
ranked_dict = dict()
for name in sorted_by_value:
this_value = leaderboard[name]
if this_value != last_value:
rank += 1
ranked_dict[name] = rank
last_value = this_value