连我女朋友都能操作实现的Python项目之:使用Pygal模拟掷骰子

前言

本文是题主是闲时时间随便翻翻书跟着学的Python简易项目,参考《python编程从入门到实践》使用Pygal模拟掷骰子。

使用pip安装Pygal

打开cmd输入

 pip install --user pygal==11.7

如果你觉得安装慢可以使用阿里源

pip install --user pygal==11.7  -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

创建项目Pygal

创一个文件夹就行,更名为Pygal

创建Die类 模拟骰子

创建一个Python文件并命名为dei.py

from random import randint

class Die():
    def __init__(self,num_sides = 6):
        self.num_sides = num_sides

    def roll(self):
        return randint(1 , self.num_sides)


掷一个六面骰子

创建一个Python文件并命名为die_visual.py

from Pygal.die import Die
import pygal
die = Die()


#模拟数据
results = []
for rool_num in range(10000):
    result = die.roll()
    results.append(result)

# print(results)

#分析数据
frequencies = []
for value in range(1 , die.num_sides + 1):
    frequency = results.count(value)
    frequencies.append(frequency)

print(frequencies)


#可视化数据
hist = pygal.Bar()

hist.title = "Results of rolling one D6 10000 time."
hist.x_labels = ['1','2','3','4','5','6']
hist.x_title = "Result"
hist.y_title = "Frequency of Result"

hist.add('D6',frequencies)
hist.render_to_file('die_visual.svg')

不同数据的模拟图(SVG文件)
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

同时掷两个六面骰子

创建一个Python文件并命名为die_visual2.py

from Pygal.die import Die
import pygal

die_1 = Die()
die_2 = Die()
#创造基础数据
results = []
for rool_num in range(1000000):
    result = die_1.roll() + die_2.roll()
    results.append(result)

# print(results)
#分析结果
frequencies = []
max_result = die_1.num_sides + die_2.num_sides
for value in range(2 , max_result + 1):
    frequency = results.count(value)
    frequencies.append(frequency)

print(frequencies)


#可视化结果
hist = pygal.Bar()

hist.title = "Results of rolling one D6 1000000 time."
hist.x_labels = ['1','2','3','4','5','6','7','8','9','10','11','12']
hist.x_title = "Result"
hist.y_title = "Frequency of Result"

hist.add('D6 + D6',frequencies)
hist.render_to_file('die_visual2.svg')

在这里插入图片描述

同时掷两个不同面数的骰子

创建一个Python文件并命名为die_visual3.py

from Pygal.die import Die
import pygal

die_1 = Die()
die_2 = Die(10)
#创造基础数据
results = []
for rool_num in range(1000000):
    result = die_1.roll() + die_2.roll()
    results.append(result)

# print(results)
#分析结果
frequencies = []
max_result = die_1.num_sides + die_2.num_sides
for value in range(2 , max_result + 1):
    frequency = results.count(value)
    frequencies.append(frequency)

print(frequencies)


#可视化结果
hist = pygal.Bar()

hist.title = "Results of rolling one D6 1000000 time."
hist.x_labels = ['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16']
hist.x_title = "Result"
hist.y_title = "Frequency of Result"

hist.add('D6 + D10',frequencies)
hist.render_to_file('die_visual3.svg')

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蒜蓉蒸大虾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值