Форум сайта python.su
Доброго всем времени суток!!!
Недавно для облегчения своей повседневной деятельности решил изучить Python и написал свою первую программу которая автоматизирует расчет сложных математических формул. Программа работает и справляется с возложенными на нее задачами но вот сам код получился длинным и топорным.
Переходя к сути вот примерно с чем работает программа (конечно это не код с программы но загвоздка примерно в такой же ситуации)
a = 1,2,3,4,5
b = 6,7,8,9,10
c = 11,12,13,14,15
d1 = (a0+a1)+(a3-a2)*a4
d2 = (b0+b1)+(b3-b2)*b4
d3 = (c0+c1)+(c3-c2)*c4
print(d1,d2,d3)
там везде квадратные скобки но с ними текст пропадает
Можно ли написать функцию или цикл в котором сама формула будет написана один раз а интерпритатор с каждым ходом будет подставлять следующий диапозон значений из списка а в итоге выведет результат в виде следующего списка.
P.S. Повторюсь в исходной программе формулы гораздо боле громоздкие и замудренные и результат каждого последующего списка необходим следующей формуле.
Отредактировано SPIRIT-26 (Май 11, 2017 20:03:53)
Офлайн
def func(x): return [(x[0]+x[1])+(x[3]-x[2])*x[4]] a = [1,2,3,4,5] b = [6,7,8,9,10] c = [11,12,13,14,15] for x in(a,b,c): print(func(x))
Офлайн
В вашем случае a,b ,c по сути оно и тоже. Не надо плодить лишние сущности.
import numpy as np a = np.array([[1,2,3,4,5], [6,7,8,9,10], [11,12,13,14,15]]).T d = a[0]+a[1]+(a[3]-a[2])*a[4] print(d)
Офлайн
Спасибо всем за помощь первый пример жаль выводит в столбец а второй если не считать что нужен numpy норм выдает.
Офлайн