Не знаю как всё же будет лучше.
Но мне по крайней мере проще подать словарь в виде списка, и использовать сортировку через один из методов списков.
sorted_list = sorted([(x, studs[x]) for x in studs], key = lambda x: x[1]) #если вывести через print, то отобразиться в порядке возрастания список с кортежами внесённых данных
print('Найбільший бал у:', sorted_list[-1]) #Так как список отсортирован, то получается что последний элемент - наибольший
print('Найменший бал у:', sorted_list[0]) #Ну а первый соответственно наименьший
#Если нужно выводить лишь имя. То можно просто обратиться к первому элементу. sorted_list[0][0]