python 入门学习 模拟投掷骰子
《大富翁》通过掷骰子决定行动,模拟投资经营体验。 #生活乐趣# #游戏乐趣# #桌面游戏#
本节视频学习使用 python语言实现模拟投掷骰子。
本章节涉及到的知识点有:
1. 通过python模拟随机事件,或生成随机数
random 模块 函数含义random()生成一个[0,1.0] 之间的随机浮点数uiform(a,b)生成一个a 到 b 之间的随机浮点数randint(a,b)生成一个 a 到 b 之间的随机整数choice(<list>)从列表中随机返回一个元素shuffle(<list>)将列表中元素随机打乱sample(<list>,k)从指定的列表中随机获取K个元素更多 random 模块的使用方法见 https://docs.python.org/3/library/random.html
遍历列表时如何同时获取每个元素的索引号 及其元素值enumerate() 函数2.zip()函数
3.python 数据可视化
https://matplotlib.org/gallery.html
如果标题显示中文有问题添加 如下两行代码即可解决
# 解决中文显示问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
matplotlib 模块
4.python 简单的数据分析
matplotlib 直方图5.使用科学计算库NumPy 简化程序
更详细的教程见 https://www.sohu.com/a/202682457_718302
lesson1
模拟掷骰子一个骰子
练习实践代码源码与输出结果
"""
作者:
版本:v1.0
日期:20190730
功能:模拟投掷骰子
"""
import random
def roll_dict():
roll = random.randint(1,7)
return roll
def main():
totle_times = 1000
result_list = [0] * 6
for i in range(totle_times):
roll = roll_dict()
for j in range(1,7):
if roll == j :
result_list[j-1] += 1
print(result_list)
for i, result in enumerate(result_list):
print('点数:{} ,次数{} 频率 {}'.format(i+1, result, result / totle_times))
print('end')
if __name__ == '__main__':
main()
lesson2
模拟投掷两个骰子
练习实践代码源码与输出结果
"""
作者:
版本:v2.0
日期:20190730
功能:模拟投掷骰子
模拟投掷两个骰子
"""
import random
def roll_dice():
roll = random.randint(1, 7)
return roll
def main():
totle_times = 1000
result_list = [0]* 12
roll_list = list(range(2,13))
roll_dict = dict(zip(roll_list,result_list))
for i in range(totle_times):
roll1 = roll_dice()
roll2 = roll_dice()
for j in range(2, 13):
if (roll1+ roll2) == j:
roll_dict[j ] += 1
print(result_list)
for i, result in roll_dict.items() :
print('点数:{} ,次数{} 频率 {}'.format(i , result, result / totle_times))
print('end')
if __name__ == '__main__':
main()
lesson3
需要安装库:命令如下: pip3 install matplotlib
如下图所示是安装成功后的提示界面
练习实践代码源码与输出结果
"""
作者:
版本:v3.0
日期:20190730
功能:模拟投掷骰子
模拟投掷两个骰子,可视化
"""
import random
import matplotlib.pyplot as plt
def roll_dice():
roll = random.randint(1, 7)
return roll
def main():
totle_times = 100
result_list = [0]* 12
roll_list = list(range(2,13))
roll_dict = dict(zip(roll_list,result_list))
roll1_list = []
roll2_list = []
for i in range(totle_times):
roll1 = roll_dice()
roll2 = roll_dice()
roll1_list.append(roll1)
roll2_list.append(roll2)
for j in range(2, 13):
if (roll1+ roll2) == j:
roll_dict[j ] += 1
print(result_list)
for i, result in roll_dict.items() :
print('点数:{} ,次数{} 频率 {}'.format(i , result, result / totle_times))
x = range (1, totle_times + 1 )
plt.scatter(x, roll1_list, c= 'red', alpha = 0.5)
plt.scatter(x, roll2_list, c= 'green', alpha = 0.5)
plt.show()
print('end')
if __name__ == '__main__':
main()
lesson4
可视化投掷两个骰子的结果
练习实践代码源码与输出结果
"""
作者:
版本:v3.0
日期:20190730
功能:模拟投掷骰子
模拟投掷两个骰子,可视化使用直方图显示
"""
import random
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
def roll_dice():
roll = random.randint(1, 6)
return roll
def main():
totle_times = 1000
roll_list = []
for i in range(totle_times):
roll1 = roll_dice()
roll2 = roll_dice()
roll_list.append(roll1 + roll2)
plt.hist(roll_list, bins=range(2,14),density = 1,edgecolor='black',linewidth=1)
plt.title('骰子点数统计')
plt.xlabel('点数')
plt.ylabel('频率')
plt.show()
print('end')
if __name__ == '__main__':
main()
lesson5
练习实践代码源码与输出结果
"""
作者:
功能:
版本:1.0
2.0新增功能:模拟投掷两个骰子
3.0新增功能:可视化投掷两个骰子的结果
4.0新增功能:直方图可视化结果
5.0新增功能:科学计算
日期:20190806
"""
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
def main() :
print('main')
total_times = 1000
roll1_arr = np.random.randint(1,7,total_times)
roll2_arr = np.random.randint(1,7,total_times)
result_arr = roll1_arr + roll2_arr
hist, bins = np.histogram(result_arr, bins= range(2,13))
print(hist)
print(bins)
plt.hist(result_arr, bins=range(2, 13), density=1, edgecolor='black', linewidth=1, rwidth=0.8)
tick_labels = ['2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']
tick_pos = np.arange(2, 13) + 0.5
plt.xticks(tick_pos, tick_labels)
plt.title('骰子点数统计')
plt.xlabel('点数')
plt.ylabel('频率')
plt.show()
if __name__ == '__main__':
main()
网址:python 入门学习 模拟投掷骰子 https://www.yuejiaxmz.com/news/view/754497
相关内容
将3颗骰子各掷一次,设事件A=“三个点数都不相同”.B='至少出? 爱问知识人Python基础学习攻略:从入门到进阶的完整路径
Python深度学习实践:深度学习在虚拟助理中的应用
Python模拟简易版淘宝客服机器人的示例代码
揭秘Python虚拟助手:与未来的对话
数学建模入门
【Python学习】趣味工具
《生活不是掷骰子:理性决策的贝叶斯思维》刘雪峰【文字版
亲子游戏有哪些推荐2023 热门的亲子游戏下载大全
如何利用Python构建智能虚拟助手