Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 22, 2013 10:16:16

kozlo22
От: Беларусь, Минск
Зарегистрирован: 2012-11-01
Сообщения: 115
Репутация: +  0  -
Профиль   Отправить e-mail  

Как читать формулу, записанную в строку?

del

Отредактировано kozlo22 (Апрель 22, 2013 10:18:20)

Офлайн

#2 Апрель 22, 2013 10:17:41

kozlo22
От: Беларусь, Минск
Зарегистрирован: 2012-11-01
Сообщения: 115
Репутация: +  0  -
Профиль   Отправить e-mail  

Как читать формулу, записанную в строку?

alexbadaloff, блин. Простите. Я туплю с утра.

Офлайн

#3 Апрель 22, 2013 20:02:49

leonid_10
От:
Зарегистрирован: 2010-03-28
Сообщения: 197
Репутация: +  3  -
Профиль   Отправить e-mail  

Как читать формулу, записанную в строку?

kozlo22
Вот тут я вообще ничего не понял.
Чего не понял? Что нет типа переменных для знаков математических действий? Чисто, я могу записать строкой, могу int, float, а знак арифметического действия, что, не может быть переменной величиной отдельного типа? Но, это уже философия, потому что подсказали eval, но в другом месте меня предупредили, что eval может быть небезопасным.
Подсказали, что лучше просто в цикле обработать строку подстановкой с помощью replace

Спасибо всем, кто откликнулся.:)



Отредактировано leonid_10 (Апрель 22, 2013 20:04:35)

Офлайн

#4 Апрель 23, 2013 08:06:34

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как читать формулу, записанную в строку?

leonid_10, Вы уж простите, но Вы настолько непонятно и сумбурно излагаете свои мысли, что понять Ваши чаяния весьма мудрено.



Офлайн

#5 Апрель 23, 2013 08:19:01

alexbadaloff
От: Иваново
Зарегистрирован: 2013-04-11
Сообщения: 198
Репутация: +  16  -
Профиль   Отправить e-mail  

Как читать формулу, записанную в строку?

leonid_10
что eval может быть небезопасным

Думаю вам будет полезна данная статья (лучше прочитать до конца) http://ru-python.blogspot.ru/2012/06/eval.html

Если хотите совет: лучше реализуйте разбор строки сами. Как минимум вы будете понимать что происходит на каждом шаге. Как максимум сможете отсеивать некорректные (или в случае eval опасные) строки.



————————–
Истина где-то рядом

Отредактировано alexbadaloff (Апрель 23, 2013 08:19:13)

Офлайн

#6 Апрель 24, 2013 20:17:30

leonid_10
От:
Зарегистрирован: 2010-03-28
Сообщения: 197
Репутация: +  3  -
Профиль   Отправить e-mail  

Как читать формулу, записанную в строку?

alexbadaloff
Думаю вам будет полезна данная статья (лучше прочитать до конца) http://ru-python.blogspot.ru/2012/06/eval.html

Если хотите совет: лучше реализуйте разбор строки сами. Как минимум вы будете понимать что происходит на каждом шаге. Как максимум сможете отсеивать некорректные (или в случае eval опасные) строки.

Спасибо! Действительно, нужен самостоятельный разбор строки.
Дело в том, что я не мастер в Питоне широкого профиля, и у меня нет возможности изучать всё досконально. Моя тема - графика и всё, что вокруг неё вращается. Поэтому проанализировать Питоном сводку метеосообщений для меня может быть проблематичным, а написать на Питоне плагин для Блендера для меня может оказаться реальным

FishHook, возможно, я сложно объясняю, а, возможно, вы разучились видеть простое. Хотя уже и решено, всё же для вас попробую объяснить ещё раз: Допустим, есть формула y=k*x. Для создания анимации, например, нужно выполнить определённые условия: if x<3: нужно не умножать, а делить, if k<1 and k>0: нужно ни делить, а возводить в степень. Бред в определённой ситуации, но может быть алгоритмом для кисти художника. При этом изначально формула подана в строке, а изменять её нужно на ключевых кадрах, предварительно обработав определённое количество значений properties и задав цикл.



Офлайн

#7 Апрель 24, 2013 20:40:31

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Как читать формулу, записанную в строку?

Ты хочеш сказать что в питоне нет средств для элементарной работы с числами и ветвлений в логике ? Или у тебя есть програма с которой питон-скрипт общается через консоль или както иначе, и ты не можешь розпарсить ответ? Розкажи что конкретно ты хочешь сделать: исходные данные, желаемый результат, какая у тебя ОС, версия питона и програмы с которой ты работаешь. Это блендер ведь?

Офлайн

#8 Апрель 25, 2013 05:43:29

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как читать формулу, записанную в строку?

leonid_10
попробую объяснить ещё раз: Допустим, есть формула y=k*x. Для создания анимации, например, нужно выполнить определённые условия: if x<3: нужно не умножать, а делить, if k<1 and k>0: нужно ни делить, а возводить в степень. Бред в определённой ситуации, но может быть алгоритмом для кисти художника. При этом изначально формула подана в строке, а изменять её нужно на ключевых кадрах, предварительно обработав определённое количество значений properties и задав цикл.

leonid_10
Есть строка с уравнением. Как произвести решение этого уравнения, не переписывая его в код?

Вы сами то понимаете, что то что было сказано вначале и то, чего от Вас таки в конце концов добились различается кардинально? Из стартового поста, лично я понял, что Вы хотите, чтобы какая-то программа принимала неизвестное уравнение в виде строки и решала его. То есть задача невыполнимая без множества ограничений и кучи дополнительной информации. Видя количество Ваших сообщений и дату присоединения к сообществу у меня возник когнитивный диссонанс.



Офлайн

#9 Апрель 25, 2013 20:43:45

leonid_10
От:
Зарегистрирован: 2010-03-28
Сообщения: 197
Репутация: +  3  -
Профиль   Отправить e-mail  

Как читать формулу, записанную в строку?

Singularity
Розкажи что конкретно ты хочешь сделать: исходные данные, желаемый результат, какая у тебя ОС, версия питона и програмы с которой ты работаешь. Это блендер ведь?
Я работаю с блендером и пишу экспортёр для рендерера Povray. Povray имеет возможность просчитывать объекты заданные не полигонами, а формулой. В данный момент я работаю над возможностью отобразить этот объект в блендере. Для этого мне и нужно пропарсить формулу. Но, написал же, что replace меня устраивает. Теперь всё в порядке.
Всем спасибо!



Офлайн

#10 Апрель 26, 2013 14:30:39

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Как читать формулу, записанную в строку?

>>> import operator
>>> operator.add(1, 2)
3
>>> operator.mul(1, 2)
2
>>> operator.truediv(1, 2)
0.5
>>>



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version