Задача: Функции. Проверка результатов онлайн-тестирования
Описание
Реализуйте функцию
evaluate_test_attempt(test_data, attempt_data), которая принимает на вход два словаря test_data и attempt_data и возвращает словарь с результатом прохождения теста: { 'user_id': [ID пользователя], 'date': [дата прохождения], 'score': [количество правильных ответов] }Структура входных данных:
1. test_data (словарь):
Содержит информацию о самом тесте (название теста и вопросы, c указанием типа и правильным ответом):
test_data = { 'name': 'Тест по программированию', 'questions': { 1: {'type': 'multi_input', 'correct_answers': [1, 2, 3]}, 2: {'type': 'single_input', 'correct_answers': 1}, 3: {'type': 'text', 'correct_answwer': 'Интерфейс программирования приложений'} } }
2. attempt_data (словарь):
Содержит информацию о попытке прохождения теста пользователем (ID пользователя, дата прохождения теста и ответы на вопросы):
attempt_data = { 'user_id': 123, 'date': '2023-03-15 10:30:45', 'answers': { 1: [1, 2], 2: 1, 3: 'Интерфейс программирования приложений' } } Логика проверки ответов:
тип
single_input: Проверить, совпадает ли номер выбранного пользователем варианта ответа с номером правильного варианта ответа.тип
multi_input: Проверить, совпадают ли номера выбранных пользователем вариантов ответа с номерами правильных вариантов ответа.тип
text: Проверить, совпадает ли текст ответа пользователя с текстом правильного ответа.
Пример использования
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': 'Интерфейс программирования приложений'}
}
}
attempt_data = {
'user_id': 123,
'date': '2023-03-15 10:30:45',
'answers': {
1: [1, 2],
2: 1,
3: 'Интерфейс программирования приложений'
}
}
evaluate_test_attempt(test_data, attempt_data)
# должна вернуть {'user_id': 123, 'date': '2023-03-15 10:30:45', 'score': 2} 
Характеристики решённой задачи
Список файлов

МГТУ им. Н.Э.Баумана
vladelo

















