我对玛蒂金·皮特斯的回答无法改进。:-)但使用列表可以更方便地解决此问题。import random
def rollDie(number):
# create a list with 7 values; we will only use the top six
rolls = [0, 0, 0, 0, 0, 0, 0]
for i in range(0, number):
roll=int(random.randint(1,6))
rolls[roll] += 1
return rolls
if __name__ == "__main__":
result = rollDie(1000)
print(result[1:]) # print only the indices from 1 to 6
而且,这有点棘手,但这里有一个更好的方法来创建一个包含7个条目的列表,所有条目都设置为零:rolls = [0] * 7
为什么你自己数零?让Python为您做这项工作更容易。:-)
编辑:列表长度为7,因为我们要使用索引1到6。列表中还有一个位置0,但我们不使用它。
另一种方法是将骰子卷映射到索引上。这是一个非常简单的映射:只要减去1。因此,1的模卷将进入列表的索引0,2的模卷将进入索引1,依此类推。现在我们将使用列表中的每个位置。
这个版本是:import random
def rollDie(number):
rolls = [0] * 6
for i in range(0, number):
roll=int(random.randint(1,6))
rolls[roll - 1] += 1
return rolls
if __name__ == "__main__":
result = rollDie(1000)
print(result)