具有随机化答案位置的多项选择测验PYTHON 3.5.2

时间:2016-09-30 09:27:46

标签: random tracking python-3.5

我正在创建一个Que Card测验,其中随机选择文本文件中的关键字,然后程序应该显示正确的定义以及文本文件中的其他2个不正确的定义。到目前为止,我有一个关键字,正确的定义和列表中存储的2个不正确的定义。无论如何,我可以随机化列表中项目的顺序,并在用户回答问题时随机化他们的位置。 我试着看一下,但我找不到任何东西。

示例:

"关键字是青蛙     1:青蛙是蓝色的     2:青蛙是绿色的     3:青蛙是紫色的     " 但是下一次关键字frog出现时,它们将处于不同的顺序。

"关键字是青蛙     1:青蛙是绿色的     2:青蛙是蓝色的     3:青蛙是紫色的     "

1 个答案:

答案 0 :(得分:0)

这是一种基于random.shuffle()的可能方法。我使用对象将问题与答案分开,并遵循您的约定,在构建问题时提供的第一个答案是正确的。我选择将指数洗牌而不是答案本身,只是为了说明可以按原样保持原始输入并且仍然可以获得随机排序。

import random

class Question:
    def __init__(self, q, a):
        self.q = q
        self.a = a
        self.order = [i for i in range(len(a))]
        random.shuffle(self.order)

    def query(self):
        print(self.q, [self.a[i] for i in self.order])

    def correct_answer(self):
        print("\tCorrect answer is", self.a[0])

q1 = Question("Frogs are:", ["green", "red", "purple"])
q1.query()
q1.correct_answer()
q2 = Question("Unicorns are:", ["mythological", "silver", "gold"])
q2.query()
q2.correct_answer()

产生如下结果:

Frogs are: ['purple', 'red', 'green']
    Correct answer is green
Unicorns are: ['gold', 'mythological', 'silver']
    Correct answer is mythological

显然,这只是解决方案的草图,输入/输出格式和演示详细信息需要您自己满意地制定出来。