我是 Python 的新手,现在我的代码刺激滚动 一个 骰子 1,000 次,但是我只需要一些改进,让它刺激滚动 两个 骰子 1,000次。
到目前为止,这是我所拥有的,它运行良好,只是需要一些改进:
import random
test_data = [0, 0, 0, 0, 0, 0]
n = 1000
for i in range(n):
result = random.randint(1, 6)
test_data[result - 1] = test_data[result - 1] + 1
for i in range(0, 6):
print ("Number of ", i+1, "'s: ", test_data[i])
关于如何让两个骰子滚动并获得与我的代码现在正在做的类似输出的任何建议是这样的:
Number of 1 's: 180
Number of 2 's: 161
Number of 3 's: 179
Number of 4 's: 159
Number of 5 's: 146
Number of 6 's: 175
请您参考如下方法:
在这种情况下,结果是 2 和 12 之间的数字。为简单起见,最好保留第一个索引。
test_data 列表因此需要增加以存储 12 项,作为 result 我们应该调用 random.randint( 1, 6) 两次(不是两次),并将它们加在一起:
import random
test_data = [0] <b>* 12</b>
n = 1000
for i in range(n):
# adding up two dices
result = random.randint(1, 6) <b>+ random.randint(1, 6)</b>
test_data[result - 1] <b>+= 1</b>
for i, x in <b>enumerate(</b>test_data<b>, 1)</b>:
print ("Number of ", i, "'s: ", x)
在这里写+= 1也更优雅,而不是= ... + 1,因为这里我们避免写test_data[result - 1] 两次。此外,在 Python 中,通常直接枚举集合,而不是索引。可以使用 enumerate(iterable, start_index) 生成一个二元组 (i, n) 的可迭代对象,i 是索引,x 与该索引相关的集合元素。
