我正在创建一个Que Card测验,其中随机选择文本文件中的关键字,然后程序应该显示正确的定义以及文本文件中的其他2个不正确的定义。到目前为止,我有一个关键字,正确的定义和列表中存储的2个不正确的定义。无论如何,我可以随机化列表中项目的顺序,并在用户回答问题时随机化他们的位置。 我试着看一下,但我找不到任何东西。
示例:
"关键字是青蛙 1:青蛙是蓝色的 2:青蛙是绿色的 3:青蛙是紫色的 " 但是下一次关键字frog出现时,它们将处于不同的顺序。
"关键字是青蛙 1:青蛙是绿色的 2:青蛙是蓝色的 3:青蛙是紫色的 "
答案 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
显然,这只是解决方案的草图,输入/输出格式和演示详细信息需要您自己满意地制定出来。