Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将独立的代码块随机化_Python_Random_Import_Function - Fatal编程技术网

Python 将独立的代码块随机化

Python 将独立的代码块随机化,python,random,import,function,Python,Random,Import,Function,我正在做一个小游戏,有3个选项出现,你必须选择正确的答案。显然,“A”不可能一直都是正确答案,所以我想将这3张照片随机化,但也要使它们可定义,以便它们可以与正确答案匹配 这是代码,我不知道从哪里开始。我考虑将代码的3个不同部分定义为1、2和3,然后将它们随机化 我希望代码的第一位,“这是正确的答案”可以定义为一个值,所以我可以说,如果choice=a,那么。。。做得好,回答正确。(我知道怎么做这部分) 只是为了澄清“a”是关键词,而fruits[a]从字典中获取“a”的值或定义。txt是一个文本

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

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

我希望代码的第一位,“这是正确的答案”可以定义为一个值,所以我可以说,如果choice=a,那么。。。做得好,回答正确。(我知道怎么做这部分)

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


多谢各位。我可能不会马上回复,因为我正忙于工作。

random。shuffle
是你的朋友。首先随机选择两个错误答案。把它们和正确答案一起放在一个列表中。洗牌名单。只有在完成所有工作后,才能与用户进行交互(使用
打印
或其他任何方式)

请注意,您当前选择错误答案的方式,即在同一列表上调用random.choice两次,可能导致两个错误答案最终完全相同。也许你可以想出一种不同的方法来处理这个列表,从而排除这种可能性。我想那里可能也会涉及到随机的洗牌

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

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

我不知道可以在列表中编码,谢谢。我会在回家后测试这个,如果它有效或者我有任何进一步的问题,我会和大家分享。你如何将代码分组到一个列表中,因为我从来没有遇到过这个问题。我不知道你为什么说“代码”本身需要被操纵(放入一个列表中,随机)。当然,您可以只操作数据(三个字符串)并保持“代码”固定。我只希望3个“打印”以随机顺序排列。如果有可能通过“操纵数据”来做到这一点,那么我将不得不对此进行调查。你从文件中选择两个错误的答案,然后列出所有三个答案的列表,将它们洗牌,并将它们打印为a、B、C。确保保留正确的答案,以便进行比较。谢谢。除了在垃圾邮件、鸡蛋和豆子上加上撇号外,您的代码工作得非常好,因为这只是打印出来的。第一项是垃圾邮件。我将垃圾邮件定义为一个定义,然后使用您的示例,不带撇号+1您只需要一个
导入随机
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