Найти - Пользователи
Полная версия: Создание теста с выбором ответов
Начало » Python для новичков » Создание теста с выбором ответов
1 2 3
Dima-vvol
xam1816
Добрый день.
Как сделать, что бы несколько вариантов ответов были правильные в вопросе? а не только 1 как у вас в коде.
пример: test_question_list.append(TestQuestion(“2+2*2”, ‘b’, {'a': ‘8’, ‘b’: ‘6’}))
xam1816
Dima-vvol
Как сделать, что бы несколько вариантов ответов были правильные в вопросе? а не только 1 как у вас в коде.
пример: test_question_list.append(TestQuestion(“2+2*2”, ‘b’, {'a': ‘8’, ‘b’: ‘6’}))
вместо одного значения, сделать список правильных вариантов.

Интересно конечно за собой наблюдать 4 года спустя)
сейчас бы я сделал так

  
questions = [
    {
        'text': 'Сколько будет 2+2?',
        'variants': [
            {'id':'1', 'text': '3', 'is_correct': False},
            {'id':'2', 'text': '4', 'is_correct': True},
            {'id':'3', 'text': '5', 'is_correct': False}
        ]
    },
    {
        'text': 'Прямой угол это',
        'variants': [
            {'id':'1', 'text': '90', 'is_correct': True},
            {'id':'2', 'text': '180', 'is_correct': False},
            {'id':'3', 'text': '45', 'is_correct': False}
        ]
    }
]
for q in questions:
    # выводим на экран
    print(q["text"])
    for n, variant in enumerate(q['variants'], 1):
        print(f'{n}) ',variant['text'])
    # ждем ввода ответа от пользователя
    while True:
        your_answer = input('> ')
        # проверяем есть ли такой вариант
        ids = [i['id'] for i in q['variants']]
        if your_answer in ids:
            break
    # проверяем верно или нет
    answer_correct = [(i['id'], i['text']) for i in q['variants'] if i['is_correct']][0]
    if your_answer in answer_correct[0]:
        print('Верно')
    else:
        print('Ошибка!')
        print(f'Правильный ответ: {answer_correct[0]}) {answer_correct[1]}')
        break
    print('======================================')
[code python][/code]
benchase
One approach is to store the questions, answer choices, and correct answers in a list or dictionary, then use a loop to display each question, collect user input, and check if their answer is correct.
____ ___

benchase
Creating a multiple-choice test in Python is a fantastic beginner project because it introduces key programming concepts in a fun and practical way. To start, you can organize the questions, answer choices, and correct answers in a list of dictionaries, where each dictionary represents a question with its possible answers and correct option. This structure makes it easy to iterate over the questions using loops.

______________________
Dima-vvol
xam1816
Спасибо.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB