计算硬币翻转的结果

时间:2015-02-14 12:19:44

标签: python matplotlib presentation

我已经写了一小段代码来模拟硬币翻转的结果,并希望找到一种更好的方式来呈现结果,而不是连续的硬币翻转列表。我有一个月的时间学习Python作为我物理学位的一部分,如果这有助于提供一些背景。

这是代码;

from pylab import *

x=0
while x<=100:

    num = randint(0,2)
    if num == 0:
        print 'Heads'
    else:
        print 'Tails'
    x=x+1
print 'Done'

我有什么选择以更易于理解的方式呈现此数据?

1 个答案:

答案 0 :(得分:4)

Python不是使用while循环并将结果打印到屏幕上,而是使用Counter(内置字典容器的子类)进行计数并非常巧妙地存储结果。

例如:

from collections import Counter
import random

Counter(random.choice(['H', 'T']) for _ in range(100))

当我运行代码时,它产生了以下结果:

Counter({'H': 52, 'T': 48})

我们可以看到头部被翻转52次,尾部翻了48次。

这已经更容易理解了,但是现在您拥有数据结构中的数据,您还可以绘制简单的条形图。

按照Stack Overflow回答here中的建议,你可以写:

import matplotlib.pyplot as plt

# tally = Counter({'H': 52, 'T': 48})

plt.bar(range(len(tally)), tally.values(), width=0.5, align='center')
plt.xticks(range(len(tally)), ['H', 'T'])
plt.show()

这会产生一个如下所示的条形图:

enter image description here