SymPy - 打印

SymPy 中有几种可用的打印机。 以下是部分清单 −

  • str
  • srepr
  • ASCII pretty printer
  • Unicode pretty printer
  • LaTeX
  • MathML
  • Dot

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

SymPy 使用 Unicode 字符以 pretty 的打印形式呈现输出。 如果您使用 Python 控制台执行 SymPy 会话,最好的 pretty 打印环境是通过调用 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 Pretty 打印机。 然而,Jupyter notebook 使用 MathJax 渲染 LATEX。

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

ASCII Pretty 打印机

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

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

Unicode Pretty 打印机也可以从 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))

<apply>

<int/>

<bvar>

<ci>x</ci>

</bvar>

<apply>

<root/>

<apply>

<power/>

<ci>x</ci>

<cn>-1</cn>

</apply>

</apply>

</apply>

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

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