随机化单独的代码块

时间:2013-12-06 15:33:22

标签: python random import function

我正在制作一个小游戏,其中有三个选项出现,你必须选择正确的答案。显然,“A”不能一直是正确的答案,所以我想随机化3张照片,但也可以将它们定义为可以匹配正确的答案。

这是代码,我不知道从哪里开始。我考虑将代码的3个不同部分定义为1,2和3,然后将它们随机化。

我想要第一段代码,“这是正确答案”可以定义一个值,所以我可以说,如果选择= a那么......做得好的正确答案。 (我知道如何做这部分)

 input("now press enter for your definitions")

 #1st
 #This prints the fruit, and the CORRECT matching fruit definitions
 print(a, "is -  A:", fruits[a])

 #2nd    
 #these randomly generates 2 other fruit definitons
 import random
 with open('fruitdefinitions.txt') as f:
    print (a, "is -  B:", random.choice(list(f)))

 #3rd
 import random
 with open('fruitdefinitions.txt') as f:
    print (a, "is -  C:", random.choice(list(f)))

只是为了澄清“a”是关键字,fruits [a]从字典中获取“a”的值或定义。 fruitdefinition.txt是一个只包含水果定义的文本文件。

谢谢。因为我忙于工作,所以不能马上回答。

1 个答案:

答案 0 :(得分:2)

random.shuffle是你的朋友。首先选择两个随机错误答案。将它们与正确的答案一起放在列表中。洗牌清单。一旦完成所有内容,只与用户(使用print或其他任何内容)进行交互。

请注意,您当前选择错误答案的方式,在同一列表上调用random.choice两次,可能会导致两个不正确的答案相互之间完全相同。也许你可以想到一种不同的处理清单的方法,可以排除这种可能性。我认为random.shuffle也可能参与其中。

以下示例说明了如何重新排序数据,而不必重新排序代码中的语句,以获得不同的结果:

import random
things = [ 'spam', 'eggs', 'beans' ]
for repeat in range(10):   # exactly the same *code* will run 10 times...
    print('the first item is ' + things[0])
    print('the second item is ' + things[1])
    print('the third item is ' + things[2])
    random.shuffle(things) # ... but with a different outcome each time