Задача: Функции. Таблица рейтинга онлайн-тестирования
Описание
Продолжая работу над системой онлайн-тестирования, вам необходимо реализовать функцию
Входные данные:
Логика формирования рейтинга:
![]()
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
Комментарии
Нет комментариев
Стань первым, кто что-нибудь напишет!
Отзывы на другие работы автора
Вся теория для экзамена "Интегралы и ДУ" с доказательствами
не вся теория, некоторые ответы на вопросы норм, а некоторые не оч
Разбор всех билетов РК "Общие теоремы динамики"
Такие файлы есть и это радует
Билеты РК1 для СМ и РК4
Билеты совпали, очень помогло
Разбор ВСЕХ билетов из экзамена по физике 2024 г., 2 курс, 3 семестр
помогло в подготовке
Вся теория для экзамена по кратным интегралам, теории поля и рядам
Все сошлось, только номера разные
МГТУ им. Н.Э.Баумана
vladelo


















