模拟骰子六个面的类:
from random import randint
class Die():
"""表示一个骰子的类"""
def __init__(self, num_sides=6):
"""骰子默认为6面"""
self.num_sides = num_sides
def roll(self):
"""返回一个位于1和骰子面数之间的随机值"""
return randint(1, self.num_sides)
掷骰子并绘制图表:
import sys
import pygal
from practice import Die
sys.path.append('E:\Python\Python 代码')
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()
hist.title = "Results of rolling"
hist.x_labels = ['1', '2', '3', '4', '5', '6']
hist.x_title = "Result"
hist.y_title = "Frequency"
hist.add('D6', frequencies) #将一系列的值添加到图表中
hist.render_to_file('die_visual.svg')
图表文件保存在当前文件夹中,而且用浏览器才能打开
Paste_Image.png
网友评论