Найти - Пользователи
Полная версия: "А не индийский ли код я написал?" или "Как быстрее/короче и т.д."
Начало » Python для новичков » "А не индийский ли код я написал?" или "Как быстрее/короче и т.д."
1 2 3 4 5
doza_and
С наступившим первомаем!

Изучайте международный язык трудящихся - английский язык! Если ткнуть на приведенной странице в ссылку Format String Syntax то перейдете на страницу где это объясняется гораздо лучше чем я смогу объяснить:
http://docs.python.org/2/library/string.html#formatstrings

Если не на международном языке то примерно так:

{0:2d}
нулевой аргумент - целое занимающее 2 позиции
{3:10.3g}
третий аргумент - общий формат для плавающих чисел поле шириной 10 символов точность 3 значащие цифры.
bot1net
doza_and, не устану говорить вам спасибо!
ЗЫ. Постараюсь не задавать глупых вопросов по форматированию. Вот чего мне не хватало: http://docs.python.org/2/library/string.html#grammar-token-format_spec
bot1net
Неинтересный вопрос. Функция рассчитывает простое скользящее среднее. В силу отсутствия мозга навыка, написал как смог, в лоб. Посоветуйте, пожалуйста, способ “поэлегантнее”.

def movingAverage(period):
    sma = []
    for i in range(column - period + 1):
        sma.append(sum(cl[i:i+period])/period)
    return sma

Та же просьба актуальна и для следующей функции
def event(param):
    amount = 0
    data1 = []                  
    for i in range(len(cl)-1):
        if cl[i+1]/cl[i] >= 1.05:
            amount += 1
            data1.append(cl[i:i+2+param])
    return data1

Ps. Сабж в курсе, что можно загуглить, но хочется общения с профи Заранее спасибо!
doza_and
1 Желательно для нового вопроса создавать новую тему, давать ей адекватное название.
2 для среднего http://docs.scipy.org/doc/numpy/reference/generated/numpy.convolve.html
3 Аналог для второго кода трудно найти, поскольку непонятно что такое cl. К сожалению также не уловил смысла в data1, amount рассчитывается, но не используется, это потеря времени при интерпретации и затуманивание кода для тех кто его просматривает.

Желательно выкладывать рабочий код, пользоваться средствами типа pylint
pyuser
bot1net
Посоветуйте, пожалуйста, способ “поэлегантнее”.
def movingAverage(period):
    return [sum(x) / period for x in zip(*[iter(cl[:column-period])] * period)]
def event(param):
    return [cl[i:i+2+param] for i, (a, b) in enumerate(zip(cl[1:], cl)) if a / b >= 1.05]
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB