gpt4 book ai didi

python - 直方图错误: 'int' object is not iterable

转载 作者:行者123 更新时间:2023-12-01 02:31:20 26 4
gpt4 key购买 nike

我正在尝试用两个骰子掷一百次来创建一个直方图,并将两个骰子加在一起,然后添加到一个列表中,并将该列表制作成直方图

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()

最佳答案

出现错误是因为您试图将 int m 添加到列表 b 中。为了将值放入列表中,您需要使用 b.append(m) 附加该值。

此外,您在第一次迭代后调用 plt.hist()。您需要将其和 plt.show() 移到 for 循环之外

因此您的代码将如下所示:

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.append(m)
my_lover1 += 1

plt.hist(b)
plt.show()

roll_hundred()

给出了这个数字:

enter image description here

Python 重视可读性。代码越容易阅读,它就越好(通常)。正如 @roganjosh 在评论中所说,您可以删除代码中的大量变量以使其更具可读性。您可以(如果您愿意)执行以下操作:

def roll_hundred():
b = []

for i in range(100):

dice1 = random.randint(1,6)
dice2 = random.randint(1,6)
m = dice2 + dice1

b.append(m)

plt.hist(b)
plt.show()

roll_hundred()

关于python - 直方图错误: 'int' object is not iterable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46792586/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com