Sympy в блокноте iPython: печать всей функции

В настоящее время при печати уравнений в SymPy он просто печатает «правую часть» уравнения и не включает «левую часть». Например.

>>> a = b*d
>>> a
b*d 

Принимая во внимание, что я хотел бы:

>>> a = b*d
>>> a
a = b*d

Для чего большая часть этого - хорошее форматирование, которое дает mathjax, и немного большая читабельность, когда я показываю коллегам, которые не являются программистами. Есть ли способ включить предмет уравнения в вывод?

Н.Б. Извините, моя математическая терминология не очень хороша


person mrmagooey    schedule 20.03.2013    source источник


Ответы (1)


Питон так не работает. Переменные в Python — это просто метки.

SymPy — это библиотека Python, а не нечто, обернутое вокруг Python, поэтому она соответствует синтаксису и семантике языка. Когда вы пишете a=b, вы создаете метку a, которая указывает на тот же объект (на основе SymPy или нет), что и объект, на который указывает метка b. Для получения дополнительной информации проверьте, как переменные работают в Python.

Когда вы создаете выражения SymPy, вы начинаете с экземпляров объектов класса Symbol и наращиваете их. Аргумент конструктора Symbol — это имя, которое в основном используется для печати. Вы можете написать a = b = c = Symbol('fancy_name'), и все три метки будут указывать на один и тот же объект: экземпляр Symbol('fancy_name'). Ознакомьтесь с руководством в документации Sympy.

Большую часть времени вы работаете с выражениями SymPy, а не с функциями. Как новичок вам не нужно заботиться о функциях.

Наконец, если по какой-то причине вы хотите иметь равенства или неравенства в качестве выражения (в большинстве случаев вам это не нужно), вы можете создать их с помощью

>>> relational.Eq(x, y)
x=y
person Krastanov    schedule 20.03.2013