students = [
{ ‘name’: ‘John’,
‘age’: 20,
‘subjects’: [‘Math’, ‘Physics’, ‘History’, ‘Chemistry’, ‘English’],
‘grades’: {‘Math’: 95, ‘Physics’: 88, ‘History’: 72, ‘Chemistry’: 84, ‘English’: 90}
},
{ ‘name’:’Alice’,
‘age’: 19,
‘subjects’: [‘Biology’, ‘Chemistry’, ‘Literature’, ‘Math’, ‘Art’],
‘grades’: {‘Biology’: 80, ‘Chemistry’: 92, ‘Literature’: 78, ‘Math’: 88, ‘Art’: 86}
},
Напишите программу, которая находит студента с наилучшим и худшим средним баллом соответственно. Выведите их имена и средние баллы в следующем формате:
Наилучший студент: Sophia (Средний балл: 90.67)
Худший студент: Robert (Средний балл: 83.67)
python
students = [
{
'name': 'John',
'age': 20,
'subjects': ['Math', 'Physics', 'History', 'Chemistry', 'English'],
'grades': {'Math': 95, 'Physics': 88, 'History': 72, 'Chemistry': 84, 'English': 90}
},
{
'name': 'Alice',
'age': 19,
'subjects': ['Biology', 'Chemistry', 'Literature', 'Math', 'Art'],
'grades': {'Biology': 80, 'Chemistry': 92, 'Literature': 78, 'Math': 88, 'Art': 86}
}
]
# Вычисляем средний балл для каждого студента
average_grades = {}
for student in students:
grades_sum = sum(student['grades'].values())
num_subjects = len(student['subjects'])
average_grades[student['name']] = grades_sum / num_subjects
# Находим студента с наилучшим и худшим средним баллом
best_student = max(average_grades, key=average_grades.get)
worst_student = min(average_grades, key=average_grades.get)
# Выводим результат
print(f"Наилучший студент: {best_student} (Средний балл: {average_grades[best_student]:.2f})")
print(f"Худший студент: {worst_student} (Средний балл: {average_grades[worst_student]:.2f}")
Этот код пройдет по списку студентов, посчитает средний балл для каждого студента, затем найдет студента с наилучшим и худшим средним баллом и выведет их имена и средние баллы в требуемом формате.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет