Я пытаюсь написать программу, которая принимает номер рулона, имя & Знаки физики, химии и математики 3 студентов. Рассчитать итоговые оценки & процент для всех учащихся & отображает список заслуг на экране.Нужно предложение на примере namedtuple
Я попробовал это с 'namedtuple', но я застрял, я не знаю, если мой подход неправильный.
from collections import namedtuple
SInfo = namedtuple('SInfo', 'RNo Name M_P M_C M_M')
student1 = SInfo('123','Appy','60','90','65')
student2 = SInfo('124','Banny','30','60','75')
student3 = SInfo('125','Sammy','50','70','85')
students = [student1,student2,student3]
result = {}
for i in range(0,3):
Total_Marks = int(students[i].M_P) + int(students[i].M_C) + int(students[i].M_M)
list1 = []
list1.append(students[i].Name) # Student Name
list1.append(Total_Marks) # Total Marks
list1.append(Total_Marks/3) # Percentage
result[students[i].RNo] = list1
Теперь, если я печатаю словарь по «Res», я получаю следующее (как и ожидалось):
print result
{'123': ['Appy', 215, 71], '124': ['Banny', 165, 55], '125': ['Sammy', 205, 68]}
Теперь я хочу, чтобы отсортировать общие знаки и отображать соответствующие имена и процент соответственно.
Я не уверен, как сортировать полные отметки и оставаться на связи с именем студента. Пожалуйста, предложите.
эй спасибо !! ... только один вопрос, что такое «обратное = True» здесь означает? – Ejaz
@ user3342969 Это означает сортировку по убыванию, т. Е. Более высокие номера. Поскольку вы вычисляете баллы, я предположил, что вы хотите, чтобы у первого был самый высокий балл. – parchment
Ладно .. Я получаю это сейчас ... Большое спасибо! :) – Ejaz