SymPy 打印
SymPy有几个可用的打印器。以下是部分列表−
- str
- srepr
- ASCII漂亮打印器
- Unicode漂亮打印器
- LaTeX
- MathML
- Dot
SymPy对象也可以作为输出发送到各种语言的代码,例如C、Fortran、Javascript、Theano和Python。
SymPy使用Unicode字符以漂亮的打印形式呈现输出。如果您在Python控制台中执行SymPy会话,则可以通过调用init_session()函数来激活最佳的漂亮打印环境。
>>> from sympy import init_session
>>> init_session()
IPython控制台用于SymPy 1.5.1(Python 3.7.4-64位)(ground types: 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打印机,请使用use_unicode属性设置为False的pprint()函数。
>>> pprint(Integral(sqrt(1/x),x),use_unicode=False)
Unicode漂亮的打印机也可以通过pprint()和pretty()访问。如果终端支持Unicode,它会自动使用。如果pprint()无法检测到终端支持Unicode,您可以传递use_unicode=True来强制使用Unicode。
要获取表达式的LATEX形式,请使用latex()函数。
>>> print(latex(Integral(sqrt(1/x),x)))
∫ √(1/x) dx
您也可以使用 mathml printer。为此,导入 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>