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

    @Nimachakin Автор вопроса
    Всем спасибо за советы. Я попробовал переписать программу, следуя вашем рекомендациям и положениям pep8. Структура у меня изменилась, программа работает исправно:
    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

    Пока не претендую на профессиональный код, просто интересно, где я снова наступаю на грабли?
    Ответ написан