если только один ученик, выводится: [имя] получает высшую оценку.
если только два ученика, выводится: [имя] и [имя] получают высшую оценку.
если более двух учеников, выводится: [имя], [имя] и [имя] получают высшую оценку оценок.
Однако я застрял на более чем двух учениках и не знаю, как выполнить вышеуказанное требование, например, если есть класс с 40 учениками и все они получил те же оценки, моя программа не работает. Я думал о рекурсии, но не знаю, хорошее это направление или нет.
Вот что у меня получилось:
Код: Выделить всё
marks = {'Sally': 65, 'Ken': 61, 'Michael': 88, 'Yan': 67, 'Mary': 88,'May': 88}
highest = max(marks.values())
n = [k for k, v in marks.items() if v == highest]
if len(n)==1:
print(n[0],' got the highest mark')
elif len(n)==2:
print(n[0],'and',n[1],' got the highest mark')
elif len(n)==3:
print(n[0],',',n[1],'and',n[2],' got the highest mark')
Подробнее здесь: https://stackoverflow.com/questions/535 ... e-students