A
A
arteem642021-07-19 19:51:47
Python
arteem64, 2021-07-19 19:51:47

Creating a user survey quiz?

In which of the 300 questions the system will randomly select 40 questions, it is necessary for the user to fill in the full name field, then after passing the test, the result must be displayed on the screen, which was subsequently written to a log file or database (to in the future it was possible to make a selection by users.Is it possible to add tkinter to the code of the attached file?is it possible to chain questions and answers from a text file and randomize them?thank you in advance!

import random


question_promts = [ # вопросы и варианты ответов
    "Как называется программное средство, в котором осуществляются операции по таможенное оформлению?"                              #1
    "\n(a) АИСТ-М\n(b) ВОРОБЕЙ-У\n(c) ЧАЙКА-П\n(d) СТРАУС-Т\n\n",
    "Имеет ли право пользователь использовать предоставленные ему ресурсы в личных целях?"                                          #2
    "\n(a) Да\n(b) Нет\n(c) Иногда\n\n",
    "Какие данные необходимы для входа в АИС <АИСТ-М>?"                                                                             #3
    "\n(a) Только логин\n(b) Только пароль\n(c) Логин и пароль\n(d) Без понятия\n\n",
    "Какая ответственность предусмотрена законодательством РФ за нарушения правил работы с конфиденциальной информацией?"           #4
    "\n(a) Уголовная\n(b) Административная\n(c) Оба варианта верны\n\n",
    "Допускается сообщать пароль для доступа к ключевым носителям, содержащим действующие ключи ЭП, "                               #5
    "и используемым для подписания  документов?"
    "\n(a) Без понятия\n(b) Сотрудникам службы технической поддержки\n(c) Работникам департаментов"                                 #6
    "\n(d) Ничего из вышеперечисленного. Пароль запрещается разглашать другим лицам\n\n"
]

class Question:
    def __init__(self, vopros, otvet):
        self.vopros = vopros
        self.otvet = otvet

questions = [ # правильные ответы
    Question(question_promts[0], 'a'),
    Question(question_promts[1], 'b'),
    Question(question_promts[2], 'c'),
    Question(question_promts[3], 'c'),
    Question(question_promts[4], 'd')
]

random.shuffle(questions) # рандомайзер вопросов

def run_test(questions):
    score = 0
    for question in questions:
        otvet = input(question.vopros)
        if otvet == question.otvet:
            score += 1
    print('Тест завершен. Введите ФИО')
    user_name = input()
    print("У вас " + str(score) + " ответов из " + str(len(questions)) + " верны!")



run_test(questions)

Answer the question

In order to leave comments, you need to log in

2 answer(s)
S
soremix, 2021-07-19
@SoreMix

Is it possible to add tkinter to the code of the attached file?

Can
is it possible to chain questions and answers from a text file and randomize them?

Can

O
o5a, 2021-07-20
@o5a

In which of the 300 questions the system will randomly select 40 questions

random.sample()
question_list = random.sample(questions, 40)
which was subsequently written to the log file

In a simple way, and write through file.write, as already noted, in the text of the question - the answer.
To store questions in a text file, you can structure
You can structure and store question data in the form of a dictionary and store it in a json file, it will also be easy to read: json.load()
Something like this:
questions = {
1: {"question": "Как называется программное средство, в котором осуществляются операции по таможенное оформлению?",
"answers": ["АИСТ-М", "ВОРОБЕЙ-У", "ЧАЙКА-П", "СТРАУС-Т"],
"correct": 0},
2: {"question": "Имеет ли право пользователь использовать предоставленные ему ресурсы в личных целях?" ,
"answers": ["Да", "Нет", "Иногда"],
"correct": 1},
...
}

In this form, each record contains complete data in the form of a dictionary: the question itself, an unlimited list of answer options, the index of the correct answer. Some additional class is not required to work, at least not in order to link the question and answer.
or to the database

Can. But it is better to learn the basics of relational databases in order to create the correct structure. Something like this will be: a table of questions, a table of answers, a table of user response logs (only the binding will already be by table identifiers, and not by texts).

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question