掷骰子python代码_Python之使用Pygal模拟掷骰子
引言
在本节中,我们将使用Python可视化包Pygal来生成可缩放的矢量图形文件。对于需要在尺寸不同的屏幕上显示的图表,这很有用,因为它们将自动缩放,以适合观看者的屏幕。如果你打算以在线方式使用图表,请考虑使用Pygal来生成它们,这样它们在任何设备商显示时都会很美观。
在这个项目中,我们将对掷骰子的结果进行分析。掷6面的常规骰子时,可能出现的结果为1~6点,且出现每种结果的可能性相同。然而,如果同时掷两个骰子,某些点数出现的可能性将比其他点数大。为确定哪些点数出现的可能性最大,我们将生成一个表示掷骰子结果的数据集,并根据结果绘制出一个图形。
在数学领域,常常利用掷骰子来解释各种数据分析,但是它在赌场和其他博弈场景中也得到了实际应用,在游戏《大富翁》以及众多的角色扮演游戏中也是这样。
安装Pygal
请使用pip来安装pygal,我们只需要执行命令:
pip install --user pygal==1.7
就可以把pygal安装上了。
Pygal画廊
要了解Pygal可创建什么样的图表,请查看图表类型画廊,我们只需要去pygal的官方网站查看相关文档即可。
下面我们来创建一个类模拟掷一个骰子:
方法__init__( )接受一个可选参数。创建这个类的实例时,如果没有指定任何实参,面熟默认为6;如果指定了这个实参,这个值将用于设置骰子的面数。骰子是根据面数命名的,6面的骰子名为D6,8面的骰子名为D8,以此类推。
方法roll( )使用函数randint( )来返回一个1和面数之间的随机数。这个函数可能返回起始值,终止值num_sides或这两个值之间的任何整数。
掷骰子
使用这个类创建图表前,先来掷D6骰子,将结果打印出来,并检查结果是否合理:
我们首先创建了一个Die实例,其面数为默认值6。然后掷骰子100次,并将每次的结果都存储在列表results中。下面是一个实例结果集。
通过快速扫描这些结果可知,Die类看起来没有问题。我们见到了值1~6,这表明返回了最大和最小的可能值;我们没有见到值0和7,这表明结果都在正确的范围之内。我们还见到了1~6之间的其他所有可能结果都在我们的数据集中出现了。
分析结果
为了分析掷一个6面的骰子结果,我们计算每个点出现的次数:
由于我们将使用Pygal来进行分析,而不是将结果打印出来,因此可以将模拟掷骰子的次数增加到1000次,为了分析结果我们创建了空列表frequencies,用于存储每种点数出现的次数。然后我们遍历可能的点数(这里为1~6),计算每种点数在results中出现了多少次,并将这个值附加到列表frequencies的末尾。接下来,我们在可视化之前将其打印出来:
结果看起来是合理的,我们看到了6个值:掷D6骰子的时候可能出现每个点数对应一个;我们还发现,没有任何点数是高出其他点数很多的。
接下来我们就可以利用这些数据进行我们直方图的绘制啦
掷骰子python代码_Python之使用Pygal模拟掷骰子相关推荐
- 掷骰子python代码_Python 使用matplotlib模块模拟掷骰子
掷骰子 骰子类 # die.py 骰子类模块 from random import randint class Die(): """骰子类""&quo ...
- 投掷骰子的python代码_Python基础篇——模拟掷骰子小游戏
写在前面 ↓ 骰子是我们经常能看到的小玩意儿,今天我们来做一个模拟掷骰子过程的文字版小游戏,送给幻想编程岛新接触Python的初学者们~ 注:本教程基于64位windows系统(鼠标右键点击桌面&qu ...
- Python入门:使用Pygal模拟掷骰子
来源:<Python编程:从入门到实践> 目录 1.安装Pygal 2.Pygal画廊 3.创建Die类 4.掷骰子 5.分析结果 6.绘制直方图 7.同时掷两个骰子 8.同时掷两个面数不 ...
- 掷骰子python代码_通过构建一个简单的掷骰子游戏去学习怎么用 Python 编程
不论是经验丰富的老程序员,还是没有经验的新手,Python 都是一个非常好的编程语言. Image by : opensource.com Python 是一个非常流行的编程语言,它可以用于创建桌面应 ...
- 掷骰子Python代码
Hello,大家好,这一次我给大家带来的是"掷骰子"的Python代码,不说那么多,上代码喽~ # -*- coding:utf-8 -*- # 摇3次骰子,当总数total,3& ...
- Python:使用Pygal模拟掷骰子练习题
来源:<Python编程:从入门到实践> 文章目录 1 1.1 安装Pygal 1.2 Pygal画廊 1.3 创建Die类 1.4 掷骰子 1.5 分析结果 1.6 绘制直方图 1.7 ...
- 掷骰子python代码_如何使用python的random模拟掷骰子的数据
python是一个很有趣的语言,可以在命令行窗口运行.python支持面向对象的编程方法,这篇经验就告诉你,如何使用python的random模块,模拟掷骰子的数据. 工具/原料 windows系统电 ...
- pygal模拟掷骰子
本次练习是通过python的pygal来模拟掷骰子的结果.我先创造了一个骰子类(Die),这个类的骰子都有6个面,点数分别是1~6.然后由这个类创建两个实例die1和die2.模拟的是随机投掷这两个筛 ...
- Python动画制作:用tkinter模拟掷骰子
骰子是很多游戏必不可少的道具,虽然用代码模拟生成骰子的点数比较简单,但在图形化的游戏里,如果能够模拟出掷骰子的效果,必然会为游戏增色不少.正好最近问哥在琢磨的几个小游戏都需要用到掷骰子,于是单独写篇文 ...
- postman生成python代码_python代码直接生成可执行exe文件
前言: python中有一个很厉害的库可以直接将写好的python代码打包成可执行的.exe文件,生成好的文件不需要python运行环境和pycharm等IDE就可以直接双击运行,是不是很厉害呢!这样 ...
最新文章
- 自动驾驶视觉融合-相机校准与激光点云投影
- java快速搭建webapi,4.从零搭建WebApi接口开发框架-设计Dao、Service
- VMware vSphere
- Python编程基础:第四十八节 对象作为参数Objects as Argument
- 图解Spark On Yarn cluster模式运行机制
- oracle where order by,ORACLE SQL WHERE和ORDER BY
- C#线程使用(二)全面总结
- sdut 活动选择问题
- java标识符命名_Java标识符命名规则
- spring的jdbcTemplate的多数据源的配置,springboot的jdbcTemplate的多数据源的配置
- 秋招很倒霉,但最终还是触底反弹了
- opencv实现图片的任意角度旋转
- php获取毫秒级别时间戳及转换日期
- SDU程序设计思维Week15-作业 字符串
- 千呼万唤始出来的IDEA笔记插件mdNote
- 【PyTorch问题】Tensor for ‘out‘ is on CPU, Tensor for argument #1 ‘self‘ is on CPU,but expected them...略
- The flowing processes must be stopped before the CUDA Visual studio integration installation can pro
- android 蓝牙相关的类,Android中BluetoothAdapter类简介
- eclipse出现编译错误:resolution will not be reattempted until the update interval o f central has elapsed
- dwt转为html,如何把dwt页面转换成html页面