1

我有一个作业问题,说明使用 random.choice 函数来模拟骰子的滚动。. 它仍将模拟滚动六面模具 1000 次。我必须输入像 0、1000 这样的列表吗?或者有没有更简单的方法。

 import random
def rolldie3():
#6 variables set to 0 as the counter
one = 0
two = 0
three = 0
four = 0
five = 0
six = 0
#use for loop for 1000 times to run
for i in range(1000):
    scores = range(0,1000)
    #get a random number out of the list
    roll = random.choice(scores)
    if roll == 1:
        one = one + 1
    elif roll == 2:
        two = two + 1
    elif roll == 3:
        three = three + 1
    elif roll == 4:
        four = four + 1
    elif roll == 5:
        five = five + 1
    elif roll == 6:
        six = six + 1
        #return the variables as a list
return [one,two,three,four,five,six]
4

2 回答 2

0

查看 random.choice 描述:http ://docs.python.org/2/library/random.html#random.choice

random.choice(seq)
从非空序列 seq 返回一个随机元素。如果 seq 为空,则引发 IndexError。

所以你需要通过传递一个序列来调用这个函数来选择,你试图用你的分数变量来做。但是当你希望它从 1 到 6 时,它从 0 到 999。所以更好地定义你的范围:

scores = range(1,7)
for i in range(1000):
    #get a random number out of the list
    roll = random.choice(scores)
    ...

range(x,y) 从 x(包括)到 y(不包括)计数,这就是为什么 7 给出你想要的。

于 2013-10-04T22:19:07.843 回答
0

我想你想要这样的东西:

roll = random.choice([1,2,3,4,5,6])

照原样,您选择随机掷骰子,但只有在 1 到 6 时才做任何事情。

于 2013-10-04T22:09:05.937 回答