SymPy – 打印
在SymPy中,有几种打印机可用。以下是一个部分列表 –
- str
- srepr
- ASCII pretty printer
- Unicode pretty printer
- LaTeX
- MathML
- Dot
SymPy对象也可以作为输出发送到各种语言的代码中,如C、Fortran、Javascript、Theano和Python。
SymPy使用Unicode字符,以pretty print的形式呈现输出。如果你使用Python控制台执行SymPy会话,通过调用init_session()函数可以激活最佳的漂亮打印环境。
>>> from sympy import init_session
>>> init_session()
用于SymPy 1.5.1(Python 3.7.4-64-bit)的IPython控制台(地面类型: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笔记本使用MathJax来渲染LATEX。
在不支持Unicode的终端中,会使用ASCII漂亮打印机。
要使用ASCII打印机,请使用pprint()函数,将use_unicode属性设置为False。
>>> pprint(Integral(sqrt(1/x),x),use_unicode=False)
Unicode漂亮打印机也可以通过print()和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))