我试着创建一个直方图,两个骰子掷一百次,两个骰子加在一起,然后加在一个列表中,这个列表就变成了直方图
def roll_hundred():
b = []
my_lover = range(101)
my_lover1 = 1
for my_lover1 in my_lover:
if my_lover1 < 101:
dice1 = random.randint(1,6)
dice2 = random.randint(1,6)
m = dice2 + dice1
b += m
my_lover1 += 1
print (b)
plt.hist(b)
plt.show()
我还不能添加评论,所以这里尝试回答/评论。在
首先,我注意到你把b列为一个空列表。在后面的代码中,您尝试向列表中添加一个int。这会导致准确的错误。要测试这一点,只需打开python的解释器并尝试
你就会得到错误。在
据我所见,试着打电话
^{pr2}$相反。在
编辑:看起来在我发布之前也有类似的答案。在
出现错误是因为您正试图将int
m
添加到列表b
。为了在列表中放入一个值,您需要使用b.append(m)
来附加这个值。在另外,在第一次迭代之后调用
plt.hist()
。您需要将它和plt.show()
移出for循环因此,您的代码如下所示:
得出的数字是:
Python重视可读性。你的代码越容易阅读,它就越好(一般来说)。正如@roganjosh在评论中所说,您可以删除代码中的许多变量,使其更具可读性。您可以(如果您愿意)执行以下操作:
^{pr2}$相关问题 更多 >
编程相关推荐