from die import Die
import pygal
die = Die()
results = []
for roll_num in range(1000):
result = die.roll()
results.append(result)
frequencies = []
for value in range(1,die.num_sides+1):
frequency = results.count(value)
frequencies.append(frequency)
# 对结果进行可视化
hist = pygal.Bar() # 创建一个 pygal.Bar() 实例并存储于 hist
# 设置相关属性
hist.title = "Results of rolling one D6 1000 times"
hist.x_labels = ['1','2','3','4','5','6']
hist.x_title = "Result"
hist.y_title = "Frequency of Result"
# 使用 add 将一系列值添加进图表中,向add传递给要添加的值指定的标签,还有一个列表(其中包含将要出现在图表中的值)
hist.add("D6",frequencies)
# 将该图表渲染成一个 svg 文件
hist.render_to_file("die_visual.svg")
/
die.py
from random import randint
class Die():
"""表示一个骰子的类"""
def __init__(self,num_sides=6):
"""骰子默认六面"""
self.num_sides = num_sides
def roll(self):
"""返回一个位于1和骰子面数之间的随机值"""
return randint(1,self.num_sides)