Форум сайта python.su
253
С наступившим первомаем!
Изучайте международный язык трудящихся - английский язык! Если ткнуть на приведенной странице в ссылку Format String Syntax то перейдете на страницу где это объясняется гораздо лучше чем я смогу объяснить:
http://docs.python.org/2/library/string.html#formatstrings
Если не на международном языке то примерно так:
{0:2d}
{3:10.3g}
Офлайн
0
doza_and, не устану говорить вам спасибо!
ЗЫ. Постараюсь не задавать глупых вопросов по форматированию. Вот чего мне не хватало: http://docs.python.org/2/library/string.html#grammar-token-format_spec
Отредактировано bot1net (Май 1, 2013 15:55:22)
Офлайн
0
Неинтересный вопрос. Функция рассчитывает простое скользящее среднее. В силу отсутствия мозга навыка, написал как смог, в лоб. Посоветуйте, пожалуйста, способ “поэлегантнее”.
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
Заранее спасибо!
Отредактировано bot1net (Май 3, 2013 19:26:56)
Офлайн
253
1 Желательно для нового вопроса создавать новую тему, давать ей адекватное название.
2 для среднего http://docs.scipy.org/doc/numpy/reference/generated/numpy.convolve.html
3 Аналог для второго кода трудно найти, поскольку непонятно что такое cl. К сожалению также не уловил смысла в data1, amount рассчитывается, но не используется, это потеря времени при интерпретации и затуманивание кода для тех кто его просматривает.
Желательно выкладывать рабочий код, пользоваться средствами типа pylint
Офлайн
36
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]
Офлайн