Описание
Модуль quizbank для создания и хранения наборов вопросов с ответами, объединённых в группы. Поддерживает два формата данных:
- simple — упрощённый:
{"Группа": {"Вопрос": "Ответ"}}(или список ответов), удобен для ручного заполнения json; - stored — полный: каждый ответ помечен как правильный/неправильный, поддерживается обратный режим (вопрос и ответ меняются местами) и автогенерация недостающих неправильных вариантов.
Использование
QuestionBank
from quizbank import QuestionBank
bank = QuestionBank(
path_to_simple="simple.json",
path_to_stored="stored.json",
)
path_to_simple— путь к json файлу в simple-формате;path_to_stored— путь к json файлу в stored-формате.
Оба параметра необязательны. Если указан path_to_simple, данные при инициализации автоматически конвертируются и сохраняются в stored-хранилище.
методы класса QuestionBank
— метод load_simple_json
загружает json файл simple-формата
bank.load_simple_json("simple.json")
— метод load_simple_data
загружает новые данные из словаря simple-формата (объединяются с уже имеющимися)
bank.load_simple_data({
"Набор4": {"Вопрос1": "Ответ1", "Вопрос2": ["Ответ2", "Ответ2.1"]}
})
— метод add_question
добавляет один вопрос напрямую в stored-хранилище с явным указанием правильных и неправильных ответов
bank.add_question(
group="Набор1",
title="Вопрос1",
right_answers=["Ответ1"],
wrong_answers=["Ответ2", "Ответ3"],
)
— метод get_groups
возвращает список всех групп
groups = bank.get_groups()
— метод get_question
возвращает конкретный вопрос группы
question = bank.get_question(
group="Набор1",
title="Вопрос1",
quantity_ans=5,
)
вернёт QItem для вопроса "Вопрос1" из группы "Набор1" с пятью вариантами ответа
— метод get_rand_question
возвращает случайный вопрос
question = bank.get_rand_question(
group="Набор1",
quantity_ans=5,
)
если group не задан — вопрос выбирается из случайной группы
— метод get_qitems
возвращает все вопросы группы
items = bank.get_qitems(group="Набор1")
— метод get_all_data_str / get_all_data_bytes
возвращает все данные stored-хранилища сериализованными в JSON (строкой или байтами)
raw = bank.get_all_data_str()
QItem
отдельно взятый вопрос с вариантами ответов; создаётся не напрямую, а через get_question / get_rand_question / get_qitems
question = bank.get_rand_question(group="Набор1")
свойства и методы QItem
— свойство title
заголовок вопроса
question.title
— свойство group
наименование группы вопроса
question.group
— свойство right_answers
список правильных ответов к вопросу
question.right_answers
— свойство wrong_answers
список неправильных ответов к вопросу
question.wrong_answers
— свойство all_answers
все ответы к вопросу (правильные + неправильные)
question.all_answers
— метод is_right
проверяет правильность выбранного ответа
question.is_right(answer)
Примеры
примеры в /examples
Metadata
Release files for quizbank 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| quizbank-0.4.0.tar.gz | 9.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| quizbank-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.7 kB
Release files / quizbank-0.4.0.tar.gz
| Download URL | quizbank-0.4.0.tar.gz |
|---|---|
| Size | 9.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4f759e44b1f5cd3c85baa17d1664a029172dbcee9b6ccadebd306f5bd964e0e9
|
|
BLAKE2b-256 checksum How to use checksums |
30dd6c8d9b5a58253df056994fcfa5dfe12ff39745e960ce7c2dabf308067a46
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.4.1 CPython/3.14.4 Windows/10
|
Release files / quizbank-0.4.0-py3-none-any.whl
| Download URL | quizbank-0.4.0-py3-none-any.whl |
|---|---|
| Size | 11.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bb4932a72831517f2b9cf2c8e91445a4a12b9499bfc2f004db6a17bf54b38908
|
|
BLAKE2b-256 checksum How to use checksums |
2aa51cec38f5197106fac62f233d4669f0db086c2db0f68a826243f16ed3bb1e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.4.1 CPython/3.14.4 Windows/10
|