import random
# Начальные условия
monetka = ['орел', 'решка']
Орлов = 0
Решек = 0
count = 0
times = 1
# Задание количества бросков
while times:
try:
run = int(input('Задайте количество бросков: '))
except ValueError as err:
print('Введите целое число')
else:
times = run
# Цикл бросков монеты n раз, где n = times
while times:
var = random.choice(monetka)
if var == 'орел':
Орлов += 1
count += 1
times -= 1
elif var == 'решка':
Решек += 1
count += 1
times -= 1
# Вывод текущего результата на экран
if times == 0:
print('Текущие результаты данной сессии: бросков монеты - {0}, орлов = {1} (вероятность - {2:%}, '
'решек = {3} (вероятность - {4:%}).'.format(count, Орлов, Орлов/count, Решек, Решек/count))
# Продолжение испытаний или завершение программы
while not times:
new_run = input('Продолжить? y/n: ')
if new_run not in ['y', 'n']:
print("'y' или 'n'")
elif new_run == 'y':
times += 1
continue
elif new_run =='n':
print('Конечные результаты данной сессии: бросков монеты - {0}, орлов = {1} (вероятность - {2:%}, '
'решек = {3} (вероятность - {4:%}).'.format(count, Орлов, Орлов/count, Решек, Решек/count))
break
from random import random
while True:
try:
total = int(raw_input('\nВведите количество бросков: '))
except ValueError:
print 'Введено некорректное значение: ожидается целое число.'
else:
# side1 = sum(random() < 0.5 for n in xrange(total))
side1 = int(round(sum(random() for n in xrange(total)))) # эквивалент random() >= 0.5
side2 = max(0, total) - side1
print 'Результат: орёл - {0}, решка - {1}'.format(side1, side2)
finally:
if raw_input('\nПопробовать ещё раз (Y)? ').upper() != 'Y':
break
import collections, random
options = ('орёл', 'решка')
while True:
stats = collections.Counter(dict.fromkeys(options, 0))
try:
stats.update(
random.choice(options) for test in xrange(
input('\nВведите количество бросков: ')
)
)
except:
print 'Введено некорректное значение: ожидается целое число.'
else:
print 'Результат: {0} - {{{0}}}, {1} - {{{1}}}'.format(*options).format(**stats)
finally:
if raw_input('\nПопробовать ещё раз (Y)? ').upper() != 'Y':
break
>>> timeit('choice((0,1))', setup='from random import random, choice', number=10**6)
1.4363103769230747
>>> timeit('random() < 0.5', setup='from random import random, choice', number=10**6)
0.18878976080804932
var = random.choice(monetka)
var = 'орел'
import random
coin = ('head', 'tail')
heads = tails = count = 0
while True:
while True:
try:
times = int(input('Amount of coin toss?: '))
break
except ValueError:
print('Must be integer')
for i in range(times): # +скорость +однозначность
var = random.choice(coin)
count += 1
if var == 'head': # +наглядность +скорость
heads += 1
else:
tails += 1
print('Current results: head count = {0} ({1:%}), tail count = '
'{2} ({3:%})'.format(heads, heads / count, tails, tails / count))
while True:
new = input('Continue? y/n: ')
if new in ('y', 'n'):
break
else:
print('Print "y" or "n"')
if new == 'n':
break
print('Final results: head count = {0} ({1:%}), tail count = '
'{2} ({3:%})'.format(heads, heads / count, tails, tails / count))
import random
coin = ('head', 'tail') # Initial data
heads = 0
tails = 0
count = 0
times = 1
while times: # Define the amount of coin toss
try:
ch = int(input('Amount of coin toss?: '))
except ValueError as err:
print('Must be integer')
continue
else:
times = ch
while times: # Loop for coin toss for n times, where n = ch
var = random.choice(coin)
count += 1
times -= 1
if var == coin[0]:
heads += 1
else:
tails += 1
if not times:
print('Current results: head count = {0} ({1:%}), tail count = '
'{2} ({3:%})'.format(heads, heads/count, tails, tails/count))
while not times: # Option for continuation or conclusion
new = input('Continue? y/n: ')
if new not in ('y', 'n'):
print('Print "y" or "no"')
elif new == 'y':
times = 1
continue
else:
print('Final results: head count = {0} ({1:%}), tail count = '
'{2} ({3:%})'.format(heads, heads/count, tails, tails/count))
break