import random
results = []
for i in range(1000):
A = random.randint(1,6)
results.append(A)
frequancies = {}
for value in range(1,7):
frequancy = results.count(value)
frequancies[value] = frequancy
print(frequancies)
#掌握新方法,obj.count(i),里面的i参数虽然只能调用一次,但可以用for循环调用。
>>>{1: 159, 2: 165, 3: 157, 4: 179, 5: 170, 6: 170}
简单的摇骰子问题:
将骰子进行1000次的摇动,判断所得出的数据为多少,利用字典的形式记录下来。然后可以利用直方图的形式,得出骰子的数量多少。得出的结果如何判断是正确的?
- 进行得出的数据相加
- 判断其他点数出现的次数会不会高出别的点数太多
绘制直方图
frequencies = []
for value in range(1,die.num_side+1):
frequency = results.count(value)
frequencies.append(frequency)
def strreturn(A):
return str(A)
remake_str = list(map(strreturn,range(1,7)))
hist = pygal.Bar()
hist.title = "Results of rolling one D6 1000 TIMES"
hist.x_label = remake_str
hist.x_title = "Result"
hist.y_title = "Frequency"
hist.add('D6',frequencies)
hist.render_to_file('die_visual.svg')```
绘制直方图,我按照书上的步骤,将frequencies变成列表,然后分开进行绘制。如果要用字典进行直方图绘制,主要分别将字典里的key,value取出来,放入add中去。这里,我再次用了map函数,将数字1-6变成字符串。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210124163334299.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80OTcxMjY0Nw==,size_16,color_FFFFFF,t_70)