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来编 ...
随机推荐
- Qt读取文件时中文乱码问题
在默认情况下,Qt 以 Unicode 格式处理文本字符,因此,字符本身是不会有问题的.之所以出现乱码,原因在于 Qt 不知道将 Unicode 字符以何种方式显示出来. 文本文件含有简 ...
- MATLAB——BP神经网络
1.使用误差反向传播(error back propagation )的网络就叫BP神经网络 2.BP网络的特点: 1)网络由多层构成,层与层之间全连接,同一层之间的神经元无连接 . 2)BP网络的传 ...
- 【Codeforces 1132D】Stressful Training
Codeforces 1132 D 题意:给\(n\)个电脑的电量和耗电速度,你可以买一个充电器,它的充电速度是每秒\(v\)单位,\(v\)你自己定.问最小的\(v\)能使得在\(k\)秒内每秒给某 ...
- <转>聊聊持续集成
从别处看到了一篇关于持续集成的文章,个人感觉蛮不错的,分享给大家... 原文链接:对于持续集成实践的常见问题解答 1.什么是持续集成? 集成,就是一些孤立的事物或元素通过某种方式集中在一起,产生联系, ...
- Oracle ORA-01940: 无法删除当前连接的用户
当我们要删除一个oracle的用户时,如果有其他人连接到数据库则会报以下错误: ORA-01940: 无法删除当前连接的用户 处理办法就是:将连接到当前用户的session给kill掉. 处理步骤如下 ...
- GitHub Git 简单操作
一.使用git更新GitHub 准备:本地已经安装好git 登录GitHub,选择好仓库,点击 Clone or download 拷贝地址 这里的地址为:https://github.com/edw ...
- 51NOD1522 上下序列/CF567F Mausoleum DP
题目传送门:http://codeforces.com/problemset/problem/567/F 大致题意:你有$1$到$N$的所有正整数每个数两个,现在需要你将它排成一个序列,使得序列为单峰 ...
- 反射反射,程序员的快乐+反射案例:打印和Excel导出
还是那几句话: 学无止境,精益求精 十年河东,十年河西,莫欺少年穷 学历代表你的过去,能力代表你的现在,学习代表你的将来 看过设计模式的童鞋都知道:反射反射,程序员的快乐!今天我们就利用反射来制作打印 ...
- 51nod 抽卡大赛
抽卡大赛 链接 分析: $O(n^4)$的做法比较好想,枚举第i个人选第j个,然后背包一下,求出有k个比他大的概率. 优化: 第i个人,选择一张卡片,第j个人选的卡片大于第i个人的概率是$p_j$,那 ...
- 最全的前端Git基础命令,看完保证你会!
常见信息 master: 默认开发分支 origin:默认远程版本库 Head: 默认开发分支 Head^:Head 的父提交 创建新仓库 git init git init [project-nam ...