在iPython笔记本中使用Sympy打印整个函数

3 投票
1 回答
2300 浏览
提问于 2025-04-17 19:42

目前在使用SymPy打印方程时,它只显示方程的“右边”,而不包括“左边”。比如:

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

而我希望看到的是:

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

这样做的一个重要原因是,mathjax提供了很好的格式化效果,让我在给不懂编程的同事展示时,更容易阅读。有没有办法在输出中包含方程的主题部分呢?

注:抱歉,我的数学术语不是很好。

1 个回答

10

Python的工作方式并不是这样。Python中的变量其实就是一些标签。

SymPy是一个Python库,它并不是在Python外面包裹的东西,所以它遵循Python的语法和语义。当你写 a=b 时,你实际上是在创建一个标签 a,这个标签指向和标签 b 指向的同一个对象(不管这个对象是不是基于SymPy的)。想了解更多,可以看看Python中变量是怎么工作的。

当你创建SymPy表达式时,你是从 Symbol 类的对象实例开始的,然后逐步构建起来。Symbol 构造函数的参数主要是用来打印的名字。你可以写 a = b = c = Symbol('fancy_name'),这样三个标签都会指向同一个对象:Symbol('fancy_name') 的实例。可以查看SymPy文档中的教程。

大部分时间你是在处理SymPy表达式,而不是函数。作为初学者,你不需要太关注函数。

最后,如果出于某种原因你想要把等式或不等式作为表达式(大多数情况下你并不需要这样做),你可以用

>>> relational.Eq(x, y)
x=y

撰写回答