2015-02-14 8 views
1

Я написал небольшой фрагмент кода для моделирования результата флага монетки и хотел бы найти лучший способ представления результатов, чем список последовательных переводов монет. Я занимаюсь изучением 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' 

Какие варианты я должен представить эти данные в более понятной форме?

+0

посмотрите на 'matplotlib' module python – ZdaR

+0

Несколько досадно, что 'randint (a, b)' does ** not ** использует одно и то же условное соглашение как 'range()' или 'xrange()'. 'randint (a, b)' вернет случайное целое число n: a <= n <= b. Таким образом, ваша смоделированная монета немного неуклюжа. :) –

ответ

4

Вместо того, чтобы использовать цикл while и распечатать результаты на экране, Python может выполнять подсчет и сохранять результаты очень аккуратно, используя Counter, подкласс встроенного контейнера словаря.

Например:

from collections import Counter 
import random 

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

Когда я запускал код, он произвел следующий подсчет:

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

Мы можем видеть, что головы были переворачивается 52 раз и 48 раз решка.

Это уже намного проще интерпретировать, но теперь, когда у вас есть данные в структуре данных, вы также можете построить простую гистограмму.

После предложения в ответ переполнением стека 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

+0

'Счетчик' опрятен. Я использую 'defaultdict (lambda: 0)' все время. –

+0

Ничего себе, спасибо! Я с нетерпением жду возможности использовать это. – jm22b

Смежные вопросы