Для студентов МГТУ им. Н.Э.Баумана по предмету ИнформатикаФункции. Таблица рейтинга онлайн-тестированияФункции. Таблица рейтинга онлайн-тестирования
2024-10-222024-10-30СтудИзба
Задача: Функции. Таблица рейтинга онлайн-тестирования
Описание
Продолжая работу над системой онлайн-тестирования, вам необходимо реализовать функцию
Входные данные:
Логика формирования рейтинга:
![]()
create_rating_table
, которая будет генерировать рейтинг лучших пользователей, прошедших тест. Входные данные:
test_data
(словарь): Информация о тесте (та же, что и в предыдущей задаче).attempts_data
(список словарей): Список попыток прохождения теста разными пользователями. Каждый словарь в списке содержит информацию о попытке, аналогичнуюattempt_data
из предыдущей задачи.
Функция должна вернуть список словарей, где каждый словарь представляет собой запись в таблице рейтинга и содержит:
{
"position": [номер позиции в рейтинге],
"user_id": [ID пользователя],
"max_score": [лучшая попытка - максимальное кол-во баллов],
"date": [дата лучшей попытки]
}
Логика формирования рейтинга:
- Рейтинг формируется по максимальному количеству правильных ответов.
- Если у двух пользователей одинаковый
max_score
, выше в рейтинге тот, кто раньше получилmax_score
.
Примечание:
В реализации функции create_rating_table
используйте функцию evaluate_test_attempt
из предыдущей задачи для определения количества верных ответов в каждой попытке. Т.е. в решении должно быть две функции. Учтите, что теперь у каждого пользователя может быть несколько попыток прохождения теста, представленных отдельными словарями в attempts_data
.
Пример использования
test_data = {
'name': 'Тест по программированию',
'questions': {
1: {'type': 'multi_input', 'correct_answer': [1, 2, 3]},
2: {'type': 'single_input', 'correct_answer': 1},
3: {'type': 'text', 'correct_answer': 'Интерфейс программирования приложений'}
}
}
attempts_data = [
{
'user_id': 123,
'date': '2023-03-15 10:30:45',
'answers': {
1: [2, 3],
2: 1,
3: 'Интерфейс программирования приложений'
}
},
{
'user_id': 456,
'date': '2023-03-16 12:00:10',
'answers': {
1: [1, 2],
2: 1,
3: 'Интерфейс программирования приложений'
}
},
{
'user_id': 123,
'date': '2023-03-17 15:00:04',
'answers': {
1: [1, 2, 3],
2: 1,
3: 'Интерфейс программирования приложений'
}
}
]
create_rating_table(test_data, attempts_data)
# должна вернуть [{'position': 1, 'user_id': 123, 'max_score': 3, 'date': '2024-03-17 15:00:04'}, {'position': 2, 'user_id': 456, 'max_score': 2, 'date': '2024-03-16 12:00:10'}]

Характеристики решённой задачи
Предмет
Учебное заведение
Учебная пора
Программы
Просмотров
3
Качество
Идеальное компьютерное
Размер
3,14 Kb
Список файлов
Код04.txt

Vladelo