如何使用带有大量数字的random.choice函数

时间:2013-10-04 20:26:09

标签: python random

我有一个家庭作业问题,声明使用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]

2 个答案:

答案 0 :(得分:0)

我想你想要这样的东西:

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

按原样,你选择了一个随机骰子,但只做了1到6之间的任何事情。

答案 1 :(得分:0)

查看random.choice说明:http://docs.python.org/2/library/random.html#random.choice

  

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

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

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

范围(x,y)从x(含)到y(不包括)计数,这就是为什么7给出了你想要的东西。