SymPy - 打印


SymPy 中有多种可用的打印机。以下是部分列表 -

  • 斯特
  • 斯雷普
  • ASCII 漂亮的打印机
  • Unicode 漂亮的打印机
  • 乳胶
  • 数学机器学习

SymPy 对象还可以作为输出发送到各种语言的代码,例如 C、Fortran、Javascript、Theano 和 Python。

SymPy 使用 Unicode 字符以漂亮的打印形式呈现输出。如果您使用Python控制台执行SymPy会话,则通过调用init_session()函数激活最好的漂亮打印环境。

>>> from sympy import init_session 
>>> init_session()

SymPy 1.5.1 的 IPython 控制台(Python 3.7.4-64 位)(基本类型:python)。

这些命令被执行 -

>>> from __future__ import division
>>> from sympy import *
>>> x, y, z, t = symbols('x y z t')
>>> k, m, n = symbols('k m n', integer=True)
>>> f, g, h = symbols('f g h', cls=Function)
>>> init_printing()

文档可以在 https://docs.sympy.org/1.5.1/ 找到

>>> Integral(sqrt(1/x),x)

$\int \sqrt\frac{1}{x} dx$

如果没有安装LATEX,但安装了Matplotlib,它将使用Matplotlib渲染引擎。如果未安装 Matplotlib,它将使用 Unicode 漂亮打印机。但是,Jupyter Notebook 使用 MathJax 来渲染 LATEX。

在不支持 Unicode 的终端中,使用 ASCII 漂亮的打印机。

ASCII 漂亮打印机

要使用 ASCII 打印机,请使用 pprint() 函数,并将 use_unicode 属性设置为 False

>>> pprint(Integral(sqrt(1/x),x),use_unicode=False)
Unicode 漂亮打印机

Unicode 漂亮打印机也可通过 pprint() 和 Pretty() 访问。如果终端支持 Unicode,则会自动使用它。如果 pprint() 无法检测到终端支持 unicode,您可以传递 use_unicode=True 来强制它使用 Unicode。

要获取表达式的 LATEX 形式,请使用 Latex() 函数。

>>> print(latex(Integral(sqrt(1/x),x)))

\int \sqrt{\frac{1}{x}}\, dx

您还可以使用 mathml 打印机。为此,导入 print_mathml 函数。字符串版本是通过 mathml() 函数获得的。

>>> from sympy.printing.mathml import print_mathml 
>>> print_mathml(Integral(sqrt(1/x),x))

<申请>

<int/>

<bvar>

<ci>x</ci>

</bvar>

<申请>

<根目录/>

<申请>

<电源/>

<ci>x</ci>

<cn>-1</cn>

</申请>

</申请>

</申请>

>>>mathml(Integral(sqrt(1/x),x))

'<apply><int/><bvar><ci>x</ci></bvar><apply><root/><apply><power/><ci>x</ci><cn>-1 </cn></应用></应用></应用>'