diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..c8cc8f2e0a2a83a3a1db66d9a788e9415f604261 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/.idea/ +/**/.idea/ +/*/venv/ \ No newline at end of file diff --git a/pygal/die.py b/pygal/die.py new file mode 100644 index 0000000000000000000000000000000000000000..14c8b2b8c581522fd8b32fa0668f4768c52b4b20 --- /dev/null +++ b/pygal/die.py @@ -0,0 +1,13 @@ +from random import randint + + +class Die: + """表示一个骰子的类""" + + def __init__(self, num_sides=6): + """骰子默认为6面""" + self.num_sides = num_sides + + def roll(self): + """返回一个位于骰子面数的随机的值,默认1-6""" + return randint(1, self.num_sides) diff --git a/pygal/die_visual.py b/pygal/die_visual.py new file mode 100644 index 0000000000000000000000000000000000000000..38b981402f3742f645afdca580acddbe45d299d1 --- /dev/null +++ b/pygal/die_visual.py @@ -0,0 +1,43 @@ +import pygal +from die import Die + +# 创建两个骰子 +die1 = Die() +die2 = Die() + +# 掷几次骰子,并将结果存储在一个列表中 +results1 = [] +results2 = [] +for roll_num in range(1000): + result1 = die1.roll() + result2 = die2.roll() + results1.append(result1) + results2.append(result2) + +# 分析结果 +# 分析第一个骰子的结果 +frequencies1 = [] +for value in range(1, die1.num_sides + 1): + # count() 统计一个值在列表中出现的次数 + frequency1 = results1.count(value) + frequencies1.append(frequency1) + +# 分析第二个骰子的结果 +frequencies2 = [] +for value in range(1, die2.num_sides + 1): + # count() 统计一个值在列表中出现的次数 + frequency2 = results2.count(value) + frequencies2.append(frequency2) + +# 对结果进行可视化 +hist = pygal.Bar() + +hist.title = "两个骰子随机滚动1000次的结果" +hist.x_labels = ['1', '2', '3', '4', '5', '6'] +hist.x_title = "结果" +hist.y_title = "结果频率" + +# 将一系列值添加到图表中 +hist.add('骰子1', frequencies1) +hist.add('骰子2', frequencies2) +hist.render_to_file('die_visual.svg') diff --git a/pygal/die_visual.svg b/pygal/die_visual.svg new file mode 100644 index 0000000000000000000000000000000000000000..9268c398b76ed7e25c653686921bed7586c29e9b --- /dev/null +++ b/pygal/die_visual.svg @@ -0,0 +1,4 @@ + +两个骰子随机滚动1000次的结果00202040406060808010010012012014014016016018018012345615642.23076923076923285.98380566801621151147.8076923076923292.15789473684212176253.38461538461536261.28744939271263184358.96153846153845251.40890688259114143464.5384615384615302.03643724696365190570.1153846153846244.00000000000003617488.6846153846154263.75708502024291169194.26153846153846269.93117408906882173299.8384615384615264.99190283400813159405.4153846153846282.27935222672074154510.99230769230763288.453441295546555171616.5692307692308267.461538461538456两个骰子随机滚动1000次的结果结果结果频率骰子1骰子2 \ No newline at end of file