python之pygal:掷一个骰子统计次数并以直方图形式显示
源码如下:
# pygal包:生成可缩放的矢量图形文件,可自适应不同尺寸的屏幕显示
# 安装:python -m pip intall pygal-2.4.0-py2.py3-none-any.whl
# 功能:掷一个骰子统计次数并以直方图形式显示
import pygal
from die_class import Die die = Die() # 实例化一个骰子对象 results = []
# 掷骰子100次
for n in range(100):
res = die.roll()
results.append(res) print(results) frequencies = []
# 统计每个面出现的次数
for value in range(1, die.num_sides + 1):
frequency = results.count(value)
frequencies.append(frequency) print("骰子各面出现的次数:", frequencies) # 使用pygal以直方图形式显示统计结果
hist = pygal.Bar()
hist.title = '掷骰子100次统计结果'
hist.x_labels = ['', '', '', '', '', ''] hist.x_title = '骰子结果'
hist.y_title = '出现次数' hist.add('六面的骰子', frequencies)
hist.render_to_file('D:\pywork\output\pygal\die_visual.svg')
die_class.py:
# 骰子类
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)
运行结果:
[2, 3, 6, 6, 1, 3, 1, 3, 1, 3, 1, 3, 6, 2, 1, 5, 5, 3, 6, 5, 1, 3, 4, 3, 3, 4, 2, 2, 3, 3, 4, 6, 1, 3, 1, 5, 5, 5, 5, 1, 3, 5, 5, 3, 5, 4, 3, 2, 5, 2, 1, 1, 2, 6, 6, 4, 4, 2, 1, 3, 3, 2, 5, 3, 1, 1, 3, 4, 1, 2, 1, 2, 1, 2, 6, 1, 3, 3, 6, 6, 3, 1, 1, 2, 4, 5, 4, 3, 2, 1, 6, 6, 6, 2, 6, 1, 4, 3, 1, 1]
骰子各面出现的次数: [24, 15, 24, 10, 13, 14]
运行截图:

python之pygal:掷一个骰子统计次数并以直方图形式显示的更多相关文章
- python之pygal:掷两个不同的骰子并统计大小出现次数
代码示例: # 掷两个不同的骰子并统计大小出现次数 import pygal from die_class import Die die = Die(6) # 实例化一个六面的骰子对象 die_10 ...
- python学习之掷骰子游戏
""" 通过学习的python知识,写一个简单的python小游戏 游戏名字:掷骰子比大小 游戏规则: 1.玩家可以选择玩掷几个骰子游戏(默认3个) 2.玩家可以设置双方 ...
- python写机器人玩僵尸骰子
python写机器人玩僵尸骰子由Al Sweigart用python发布注意:我正在为我的僵尸骰子模拟器寻找反馈,以及这一套指令.如果你觉得有什么地方可以改进,请发邮件到al@inventwithpy ...
- python 包多熟悉一个干活就轻松点
包管理 管理包和依赖的工具. pip – Python 包和依赖关系管理工具. pip-tools – 保证 Python 包依赖关系更新的一组工具. conda – 跨平台,Python 二进制包管 ...
- Java 一个字符串在另外一个字符串出现次数
统计一个字符串在另外一个字符串出现次数 代码如下: package me.chunsheng.javatest; import java.util.regex.Matcher; import java ...
- 基于Python实现的系统SLA可用性统计
基于Python实现的系统SLA可用性统计 1. 介绍 SLA是Service Level Agreement的英文缩写,也叫服务质量协议.根据SRE Google运维解密一书中的定义: SLA是服务 ...
- python练习册 每天一个小程序 第0006题
1 # -*-coding:utf-8-*- 2 __author__ = 'Deen' 3 ''' 4 题目描述: 5 你有一个目录,放了你一个月的日记,都是 txt,为了避免分词的问题,假设内容都 ...
- java和python根据对象某一个属性排序
最近在学习java,目前看到java如何对一个对象列表进行排序. 我有一个Member类: public Member(String name,Calendar birthday,Sex gender ...
- Python 学习之中的一个:在Mac OS X下基于Sublime Text搭建开发平台包括numpy,scipy
1 前言 Python有许多IDE能够用,官方自己也带了一个,Eclipse也能够. 但我在使用各种IDE之后,发现用Sublime Text是最好用的一个.因此.我都是用Sublime Text来编 ...
随机推荐
- AI 卷积神经网络
卷积神经网络(Convolutional Neural Network,简称CNN),顾名思义,使用了卷积.不过,这里用到的卷积和数学中的不完全一致. 1.连续卷积 2.离散卷积 3.二维离散卷积 4 ...
- android 之TCP客户端编程
补充,由于这篇文章是自己入门的时候写的,随着Android系统的升级可能有发送需要在任务 中进行,如有问题请百度 thread 或者看下面链接的文章 https://www.cnblogs.com/y ...
- 内核里面writel(readl)是如何实现的
writel和readl,这两个个函数实现在操作系统层,有内存保护的情况下,往一个寄存器或者内存地址写一个数据.先说一下writel: 在arch/alpha/kernel/io.c中有 void ...
- PHP_EOL换行 与 base64编码
base64编码包括64个字符:10个数字(0-9),26*2个字母(a-zA-Z),+,/ 其中还有一个第65个字符=作为后缀,没有实际作用. 来一段代码说明个问题: <?php $str = ...
- xml中的四则运算与时间爱格式
取值第一个 和最后一个<tr> <td height="28" colspan="2" style="font-size:14px& ...
- Maven学习笔记-04-Eclipse下maven项目在Tomcat7和Jetty6中部署调试
现在最新的Eclipse Luna Release 已经内置了Maven插件,这让我们的工作简洁了不少,只要把项目直接导入就可以,不用考虑插件什么的问题,但是导入之后的项目既可以部署在Tomcat也可 ...
- React-Route的属性exact
exact是Route下的一条属性,一般而言,react路由会匹配所有匹配到的路由组价,exact能够使得路由的匹配更严格一些. exact的值为bool型,为true是表示严格匹配,为false时为 ...
- Vue-vue-cli初始化项目
一.下载安装node.js下载地址:https://nodejs.org/en/download/,选择合适自己的版本下载,我下载的是Windows Installer (.msi) 32.bi ...
- 重装系统之无法在驱动器0的分区1上安装windows
在通过U盘或光盘安装win8/win8.1/win10 时,遇到无法安装的问题,提示“无法在驱动器0的分区1上安装windows”,格式化分区也不能解决,进而提示Windows无法安装到这个磁盘,选中 ...
- RDLC报表显示存储于数据库的图片
图片以二进制存储于数据库表中.在显示RDLC报表时,把图片呈现出来. 好吧. 把存储过程写好: CREATE PROCEDURE [dbo].[usp_File_Select] AS SELECT [ ...