NO.1

'''作者:Z_Howe版本:1.0功能:掷骰子实验:一个日期:2019/1/28
'''
import randomdef roll_selec():select_num = random.randint(1,6)return select_numdef main():try_times = eval(input('请输入您要模拟投掷骰子的总次数:'))list_1 = [0] * 6for i in range(try_times):result = roll_selec()for j in range(1,7):if result == j:list_1[j - 1] += 1for k,x in enumerate(list_1):print('点数{}模拟的次数为{},概率为{}'.format(k+1,x,float(x/try_times)))if __name__ == '__main__':main()# 创新想法:想用类,但多次尝试失败,等会儿再想

模拟结果如下:

NO.2

'''作者:Z_Howe版本:2.03.0新增功能:实现数据可视化功能:掷骰子实验:两个工具:使用zip()函数,形成映射 + numerate也是形成映射日期:2019/1/29
'''import random
import matplotlib.pyplot as pltdef roll_select():select_num = random.randint(1,6)return select_numdef main():print()print('温馨提示:')print('鉴于可视化操作实现清晰性,请把输入的次数尽量调小!')print()try_times = eval(input('请输入您要模拟投掷骰子的总次数:'))dict_1 = dict(zip(list(range(2, 13)), [0]*11))result_list_1, result_list_2 = [], []for i in range(try_times):result_1, result_2 = roll_select(), roll_select()result_list_1.append(result_1)result_list_2.append(result_2)for j in range(2, 13):if (result_1 + result_2) == j:dict_1[j] += 1for k, r in dict_1.items():print('点数{}模拟的次数为{},概率为{}'.format(k, r, float(r/try_times)))# 数据可视化操作(使用matplotlib.pyplot模板)x = range(1, try_times+1)# 形成二维坐标图,并设置透明度# y轴不能进入循环,能遍历列表plt.scatter(x, result_list_1,alpha=1)plt.scatter(x, result_list_2,alpha=1)plt.show()if __name__ == '__main__':main()

模拟结果如下图:



NO.3

'''作者:Z_Howe版本:2.0功能:掷骰子实验:两个3.0新增功能:实现数据可视化4.0新增功能:对结果进行简单的数据统计和分析,绘制直方图引用matplotlib.pyplot.hist(data, bins)data:数据列表   bins:分组边界工具:使用zip()函数,形成映射 + numerate也是形成映射日期:2019/1/29
'''import random
import matplotlib.pyplot as plt# 解决数据可视化操作的应用字符显示问题(一般是英文,现在改成中文)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = Falsedef roll_select():select_num = random.randint(1,6)return select_numdef main():print()print('温馨提示:')print('鉴于可视化操作实现清晰性,请把输入的次数尽量调小!')print()try_times = eval(input('请输入您要模拟投掷骰子的总次数:'))dict_1 = dict(zip(list(range(2, 13)), [0]*11))result_total = []for i in range(try_times):result_1, result_2 = roll_select(), roll_select()result_total.append(result_1+result_2)for j in range(2, 13):if (result_1 + result_2) == j:dict_1[j] += 1for k, r in dict_1.items():print('点数{}模拟的次数为{},概率为{}'.format(k, r, float(r/try_times)))# 数据可视化操作plt.hist(result_total, bins=range(2, 14), normed=1, edgecolor='black', linewidth=1)plt.title('骰子点数统计')plt.xlabel('点数')plt.ylabel('频率')plt.show()if __name__ == '__main__':main()

模拟结果如下图所示:



NO.4

'''作者:Z_Howe版本:2.0功能:掷骰子实验:两个3.0新增功能:实现数据可视化4.0新增功能:对结果进行简单的数据统计和分析,绘制直方图5.0新增功能:使用科学计算库(NumPy:Numeric Python)简化程序,完善数据可视化结果工具:使用zip()函数,形成映射 + numerate也是形成映射日期:2019/1/29NumPy介绍(用Python实现的科学计算库):1.强大的N维数组对象array2.成熟的科学函数库3.实用的线性代数、随机数生成函数NumPy的操作对象是多维数组ndarrayndarray.shape 数组的维度创建数组:np.array(<list>), np.arange()...改变数组形状 reshape()NumPy创建随机数组:np.random.randint(a,b,size=(元组))创建[a,b)之间形状为size的数组如:import numpy as nparr = np.random.randint(1,10,(3,4))print(arr)[[7 8 3 2][7 3 3 2][1 4 3 2]]np.histogram()输出直方图的统计结果,可以多个matplotlib 绘图补充· plt.xticks()设置x坐标的坐标点位置及标签· plt.title()设置绘图标题· plt.xlabel(), plt.ylabel()设置坐标轴的标签'''import matplotlib.pyplot as plt
import numpy as np# 解决数据可视化操作的应用字符显示问题(一般是英文,现在改成中文)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = Falsedef roll_select():select_num = random.randint(1,6)return select_numdef main():print()try_times = eval(input('请输入您要模拟投掷骰子的总次数:'))# 记录骰子的结果roll1_arr = np.random.randint(1, 7, (try_times, 1))roll2_arr = np.random.randint(1, 7, (try_times, 1))# 向量化操作:向量相加result_arr = roll1_arr+roll2_arr# bins是对应的range(2,14)的列举,而hist是每个点数对应的次数# 感觉histogram是一行一行读取矩阵hist,bins =np.histogram(result_arr, bins=range(2, 14))print(hist)print(bins)# 数据可视化操作plt.hist(result_arr, bins=range(2, 14), normed=1, edgecolor='black', linewidth=1, rwidth=0.8)# 定义每个坐标点上的名称tick_lables = ['2点', '3点', '4点', '5点', '6点','7点', '8点', '9点', '10点', '11点', '12点']tick_pos = np.arange(2, 13) + 0.5plt.xticks(tick_pos, tick_lables)plt.title('骰子点数统计')plt.xlabel('点数')plt.ylabel('频率')plt.show()if __name__ == '__main__':main()

模拟结果如下图所示:

Python案例—掷骰子相关推荐

  1. python编写掷骰子游戏改哪里把第0局变成第一局_Python基础案例练习:掷骰子小游戏...

    前言 骰子是我们经常能看到的小玩意儿,今天我们来做一个模拟掷骰子过程的文字版小游戏,送给新接触Python的初学者们~ 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者 ...

  2. 投掷骰子的python代码_模拟骰子(Python),掷骰子

    模拟掷骰子实际是抽取(1~6之间的)随机数问题,涉及random模块,后面版本的数据可视化主要应用matplotlib.pyplot模块. 1.0:模拟一个骰子的结果.首先定义roll_dice()函 ...

  3. python实现掷骰子并数据可视化

    要求 知识点提示: random模块和enumerate()函数的使用 任务要求: 1.知识点提示:random模块和enumerate()函数的使用 2.任务要求: (1)模拟抛掷1个骰子,并显示各 ...

  4. python编写掷骰子程序_Python Tkinter实例——模拟掷骰子

    什么是tkinter? tkinter 是 python 的标准 gui 库.python 使用 tkinter 可以快速的创建 gui 应用程序. 由于 tkinter 是内置到 python 的安 ...

  5. python 赌场掷骰子游戏

    掷骰子是赌场里一种非常流行的游戏.编写这个程序玩这个游戏的变种,如下所示 掷两个骰子.每个骰子有六个面,分别表示值1,2,3,4,5,6.检查两个骰子的和.如果和为2,3,12,你就输了 如果和为7, ...

  6. Python写掷骰子的游戏

    1.掷骰子游戏规则: A. 基础规则 (1)玩家和机器人各5个筹码. (2)每次随机生成一个2~12的整数,模拟两个骰子相加的得数. (3)玩家输入'大',代表押大. (4)玩家输入'小',代表押小. ...

  7. python投掷骰子实验报告_用Python模拟掷骰子

    在循环中掷骰子:def dice(n): total = 0 for i in range(n): total += random.randint(1, 6) return total 当对整数求和时 ...

  8. python实现掷骰子小游戏(附源码 简单易懂)

    需要图片集可以点赞关注收藏后评论区留言~~~ 如图 随机生成1-6之间的数字 按回车键就会自动生成 代码如下 import cv2 import time import random inx=inpu ...

  9. Python实现掷骰子小游戏 The Game of Pig

    一.游戏规则简介: 设有n个玩家(2~5个人比较合适),所有玩家过一遍叫一个 round,每个玩家的机会叫一个 turn 每个turn: 1,只要扔到 1 ,本轮所有得分清零,骰子给下一个玩家: 2, ...

最新文章

  1. Caused by: org.apache.ibatis.reflection.ReflectionException我碰到的情况,原因不唯一
  2. 060_Unicode字符编码
  3. linux远程代码执行漏洞,Bash远程任意代码执行安全漏洞(最严重漏洞)
  4. VMware安装VMwaretools
  5. 用友无法打开计算机的ufnet服务,服务器安装完毕登陆正常,但是客户端安装完毕,重启以后,用友通无法正常启动,手工在服务里面启动,提示‘服务无法启动或依存的标记被删除’...
  6. TypeError object of type ‘type‘ has no len()—Python报错问题:
  7. Vue系列vue-router的参数传递的两种方式(五)
  8. html 段落定位,使用HTML :: TreeBuilder在perl中使用段落定位div
  9. jquery的DOM节点操作(复制元素节点)
  10. 我的FPA性格色彩测试结果
  11. Atitit. 注册表操作查询 修改 api与工具总结 java c# php js python 病毒木马的原理
  12. 号码被标记,各平台取消方法
  13. matlab打开慢的原因,Matlab运行速度/效率受哪些因素影响?
  14. 微信小程序之植物识别demo(百度开发接口)
  15. 兼容ie浏览器代码处理
  16. 危化企业如何建设人员定位、智能巡检等安全管理平台
  17. AutoMagic使用说明
  18. Apriori算法找出频繁项集(python)
  19. MySQL 基线检查项
  20. 单例模式 懒汉式与恶汉式

热门文章

  1. Windows server 2022安装与激活
  2. 生活娱乐 怎么治疗冻疮 有特效
  3. 阿斯顿扩大打算打算大大飒飒是打算打算的
  4. azure linux 配置端口,快速入门 - 在 Azure 门户中创建 Linux VM - Azure Virtual Machines | Microsoft Docs...
  5. 新南威尔士计算机科学就业方向,新南威尔士大学计算机科学专业
  6. VM 16 Pro 遇到VPMC无法启动导致虚拟机无法启动求大神赐教!
  7. 辛东方:papi酱凭什么能够走红 背后的炒作令人发抖
  8. atmega16应用之TWI(IIC) PCF8574T转接LCD1602
  9. MYSQL的地理信息数据库_国家基础地理信息系统数据库
  10. 瞬间几千次的重复提交,我用 SpringBoot+Redis 扛住了