""" 作者:zxj 功能:模拟掷骰子,两个筛子数据可视化 版本:3.0 日期:19/3/24 """ import random import matplotlib.pyplot as plt def roll_num(): roll = random.randint(1, 6) return roll def main(): """ 主函数 """ total_times=100 #初始化列表[0,0,0,0,0] reslt_list=[0]*11 #记录筛子的结果 roll1_list=[] roll2_list=[] #初始化点数列表 roll_list=list(range(2,13)) #元组生成字典,zip元祖无法修改,生成字典可以修改 roll_dict=dict(zip(roll_list,reslt_list)) for i in range(total_times): roll1=roll_num() #筛子1 roll2=roll_num() #筛子2 roll1_list.append(roll1) roll2_list.append(roll2) #筛子总和(2到12之间) for j in range(2,13): #如果筛子1加筛子2符合,则字典赋值 if roll1+roll2==j: roll_dict[j]+=1 #遍历字典输出 for i ,result in roll_dict.items(): print('点数:{}的次数:{},频率:{}'.format(i,result,result/total_times)) #数据可视化 x=range(1,total_times+1) #x坐标(次数) plt.scatter(x,roll1_list,c='red', alpha=0.5) plt.scatter(x, roll2_list,c='green', alpha=0.5) plt.show() if __name__=='__main__': main()