Уведомления

Группа в Telegram: @pythonsu

#1 Май 11, 2017 19:40:49

SPIRIT-26
Зарегистрирован: 2017-05-11
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить проблему

Доброго всем времени суток!!!
Недавно для облегчения своей повседневной деятельности решил изучить 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)

Офлайн

#2 Май 11, 2017 21:15:56

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Помогите решить проблему

 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))
не совсем понятно где какие скобки но как то так. для форматирования кода на форуме после написания кода выделяешь его и в верху окна слева возле смайлика наводишь курсор и выбираешь Python

Офлайн

#3 Май 13, 2017 10:28:43

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Помогите решить проблему

В вашем случае 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)



Офлайн

#4 Май 13, 2017 15:42:26

SPIRIT-26
Зарегистрирован: 2017-05-11
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить проблему

Спасибо всем за помощь первый пример жаль выводит в столбец а второй если не считать что нужен numpy норм выдает.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version