生成范围内的随机数而不重复

2024-05-29 02:07:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个琐事游戏,需要按随机顺序调用10个问题(函数)。我可以简单地生成一个随机整数1-10,并使用if语句来调用每个函数,但是我需要确保没有问题被多次调用,所以我需要生成不重复的随机数。在

def Trivia_Snap():
    question_1()
    question_2()
    question_3()
    question_4()
    question_5()
    question_6()
    question_7()
    question_8()
    question_9()
    question_10()

Tags: 函数游戏ifdef整数语句questionsnap
3条回答
>>> import random

创建数字列表

^{pr2}$

…然后用^{}将它们洗牌

>>> random.shuffle(l)
>>> l
[5, 7, 4, 2, 1, 8, 6, 10, 9, 0, 3]
>>> random.shuffle(l)
>>> l
[1, 5, 9, 4, 10, 6, 2, 7, 0, 3, 8]

您可以将对函数的调用放在一个列表中

l = [question_1, question_2...]

然后从该列表中随机选择,无需替换

^{pr2}$

编辑:根据下面的评论,您也可以使用shuffle

random.shuffle(l)
for f in l:
    f()
import random

qlist = [i for i in range(0,10)]
random.shuffle(qlist)

for q in qlist:
    print q

相关问题 更多 >

    热门问题