zoukankan      html  css  js  c++  java
  • Pygal之掷骰子

    python之使用pygal模拟掷骰子创建直方图:

    1,文件die.py,源码如下:

     1 from random import randint
     2 
     3 class Die():
     4     '''表示一个骰子的类'''
     5     def __init__(self,num_sides = 6):
     6         '''初始化骰子的面数属性,骰子的默认面数为6'''
     7         self.num_sides = num_sides
     8 
     9     def roll(self):
    10         #返回一个位于1和骰子面数之间的随机整数值,可以是1,可以是num_sides,也可以是这两值之间的任何整数
    11         return randint(1,self.num_sides)

    2,文件die_visual.py,源码如下:

     1 import pygal
     2 
     3 from die import Die
     4 
     5 #创建一个骰子面数为6的实例
     6 die = Die()
     7 
     8 #创建空列表,用以存储掷骰子的次数
     9 results = []
    10 for roll_num in range(100):
    11     result = die.roll()
    12     results.append(result)
    13 
    14 #创建空列表frequency用以分析结果
    15 frequencies = []
    16 for value in range(1,die.num_sides+1):
    17     frequency = results.count(value)
    18     frequencies.append(frequency)
    19 
    20 '''对结果进行可视化'''
    21 
    22 hist = pygal.Bar() #创建条形图,并将其存储在hist中
    23 
    24 hist.title = "Results of rolling one D6 1000 times" #设置直方图的标题
    25 hist.x_labels = ['1','2','3','4','5','6'] #设置直方图的可能的x轴的值
    26 hist.x_title = "Results" #设置x轴的标题
    27 hist.y_title = "Frequency of Result" #设置y轴的标题
    28 
    29 hist.add('D6',frequencies) #使用add()函数将值D6和列表frequencies添加到直方图中
    30 #在当前文件夹下保存名为die_visual.svg且后缀必须为svg的文件
    31 hist.render_to_file('die_visual.svg')

    在码的过程中,可以尝试打印列表results和列表frequencies的值,看是不是符合预期。

  • 相关阅读:
    SelectionKey理解
    redis3.0.3集群搭建
    Centos6.5环境下安装SVN 整合Apache+SSL
    没有注册类 。已加载,但找不到入口点 DllRegisterServer
    今日立秋
    35+开启忙而有序的日子
    jmeter的常用函数
    jmeter之java请求
    生成Webservice客户端的4种方法
    Pytest高级进阶之Fixture
  • 原文地址:https://www.cnblogs.com/mafu/p/12924443.html
Copyright © 2011-2022 走看看