Перечислите фамилии и имена учеников в порядке убывания их среднего балла. Входные данные представлены в следующем

Перечислите фамилии и имена учеников в порядке убывания их среднего балла. Входные данные представлены в следующем формате: сначала указывается количество учеников n, затем следует n строк, в каждой из которых содержится фамилия, имя и три числа (оценки по трем предметам: , , информатике). Данные в строке разделены одним пробелом. Оценки могут принимать значения от 1 до 5. Необходимо вывести фамилию и имя каждого ученика на отдельной строке, разделяя их одним пробелом. Выводить оценки не требуется. Если несколько учеников имеют одинаковый средний балл, то их нужно выводить в порядке, заданном во входных данных. Пример входных данных: 3 markov valeriy 5
Solnechnyy_Zaychik

Solnechnyy_Zaychik

Хорошо, давайте решим эту задачу пошагово:

1. Сначала, нам нужно прочитать количество учеников n.
2. Затем, мы можем создать пустой список, где будем хранить информацию об учениках.
3. Затем, мы можем считывать строки с информацией об учениках и добавлять их в список.
4. В каждой строке, первое значение будет фамилией ученика, второе - имя, а третье, четвертое и пятое - оценки по предметам.
5. Мы можем использовать цикл for для считывания n строк.
6. В каждой итерации цикла, мы можем создать кортеж с фамилией, именем и оценками, и добавить этот кортеж в список.
7. После добавления всех учеников в список, нам нужно отсортировать список по среднему баллу учеников.
8. Для сортировки, мы можем использовать метод sort(), указав ключ сортировки, который будет использовать третий, четвертый и пятый элементы кортежа, содержащего оценки.
9. После сортировки списка, мы можем вывести фамилию и имя каждого ученика, разделяя их одним пробелом, при помощи цикла for.

Вот полный код решения этой задачи:
python
# Считываем количество учеников
n = int(input())

# Создаем пустой список для хранения информации об учениках
students = []

# Считываем информацию об учениках и добавляем их в список
for _ in range(n):
data = input().split()
surname = data[0]
name = data[1]
grades = list(map(int, data[2:]))
students.append((surname, name, grades))

# Сортируем список по среднему баллу учеников
students.sort(key=lambda x: sum(x[2]) / len(x[2]), reverse=True)

# Выводим фамилию и имя каждого ученика
for student in students:
print(student[0], student[1])


Этот код будет читать входные данные, сохранять информацию об учениках в списке, сортировать список по среднему баллу и выводить имена и фамилии учеников в соответствующем порядке. Пожалуйста, используйте его для решения задачи.
Знаешь ответ?
Задать вопрос
Привет!
hello