我遇到了一个代码问题,我需要将一个六面骰子掷 1000 次,然后返回一个列表,其中列出骰子上的每个数字被掷了多少次。
代码运行得很好,我可以在最后得到一个列表,但我的列表一直用 0 代替 4,所以看起来我的函数没有密切关注正在滚动的数字 4 或者它没有被滚动全部。
我有点难过,我想也许这里有人可以提供帮助。感谢您提供任何帮助。
这是我的代码。
def rollDie(number):
one = 0
two = 0
three = 0
four = 0
five = 0
six = 0
for i in range(0, number):
roll=int(random.randint(1,6))
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 [one,two,three,four,five,six]
最佳答案
你有一个小错字;您正在测试是否相等,而不是分配:
four == four+1
应该是:
four = four+1
但是,您已经有了一个介于 1 和 6 之间的数字,为什么不将其放入结果列表的索引中呢?这样您就不必使用那么多 if
语句。让你的数据远离你的变量名:
def rollDie(number):
counts = [0] * 6
for i in range(number):
roll = random.randint(1,6)
counts[roll - 1] += 1
return counts
关于Python 骰子滚动模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19188546/