Задать вопрос
@Nimachakin

Как повысить эффективность кода? Или такое поведение программы считается нормальным?

Здравствуйте. Продолжаю учиться программированию и попробовал написать программу подсчета вероятности выпадения орла и решки при n-ом количестве бросков. Вот сам код:

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


Вопрос вот в чём: при n > 90000 результат выводится не сразу, например, когда я задаю 200000 бросков результат появится не раньше, чем через 1,5-2 секунды. Этот связано с кривым кодом/производительностью моего ПК/всё вместе, или просто программе действительно необходимо столько времени на обработку указанного количества испытаний?
  • Вопрос задан
  • 885 просмотров
Подписаться 3 Оценить 2 комментария
Ответ пользователя Владислав К ответам на вопрос (5)
Hateman31
@Hateman31
Делиться мыслями - это круто!
Выбрасывай в мусорку всё. Сразу.
Это не рефакторить надо, а переписывать заново.
Ответ написан
Комментировать