我有一个家庭作业问题,声明使用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]
答案 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给出了你想要的东西。