SymPy - Impressão

Existem várias impressoras disponíveis no SymPy. A seguir está uma lista parcial -

  • str
  • srepr
  • Linda impressora ASCII
  • Linda impressora Unicode
  • LaTeX
  • MathML
  • Dot

Os objetos SymPy também podem ser enviados como saída para código de várias linguagens, como C, Fortran, Javascript, Theano e Python.

SymPy usa caracteres Unicode para renderizar a saída na forma de impressão bonita. Se você estiver usando o console Python para executar a sessão SymPy, o ambiente de impressão mais bonito é ativado chamando a função init_session ().

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

Console IPython para SymPy 1.5.1 (Python 3.7.4-64 bits) (tipos de solo: python).

Esses comandos foram executados -

>>> 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()

A documentação pode ser encontrada em https://docs.sympy.org/1.5.1/.

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

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

Se o LATEX não estiver instalado, mas o Matplotlib estiver instalado, ele usará o mecanismo de renderização Matplotlib. Se Matplotlib não estiver instalado, ele usa a impressora bonita Unicode. No entanto, o notebook Jupyter usa MathJax para renderizar o LATEX.

Em um terminal que não oferece suporte a Unicode, é usada uma impressora bonita ASCII.

Para usar a impressora ASCII, use a função pprint () com a propriedade use_unicode definida como False

>>> pprint(Integral(sqrt(1/x),x),use_unicode=False)

A impressora bonita Unicode também é acessada em pprint () e pretty (). Se o terminal for compatível com Unicode, ele será usado automaticamente. Se pprint () não for capaz de detectar que o terminal suporta unicode, você pode passar use_unicode = True para forçá-lo a usar Unicode.

Para obter a forma LATEX de uma expressão, use a função latex ().

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

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

Você também pode usar a impressora mathml. para isso, importe a função print_mathml. Uma versão string é obtida pela função 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>'