#coding=utf-8 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)
模拟同时掷两个6面骰子1000次的结果:
#coding=utf-8 import pygal from die import Die # 创建两个6面骰子 die_1 = Die() die_2 = Die() # 掷骰子多次,并将结果存入列表 results = [] for roll_num in range(1000): result = die_1.roll() + die_2.roll() results.append(result) # 分析结果 frequencies = [] max_result = die_1.num_sides + die_2.num_sides for value in range(2, max_result+1): frequency = results.count(value) frequencies.append(frequency) # 可视化 hist = pygal.Bar() hist.title = "Results of two D6 1000 times." hist.x_labels = ['2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] hist.x_title = "Result" hist.y_title = "frequency of Result" hist.add('D6 + D6', frequencies) hist.render_to_file('dice_visual.svg')