SymPy - Impresión

Hay varias impresoras disponibles en SymPy. A continuación se muestra una lista parcial:

  • str
  • srepr
  • Impresora bonita ASCII
  • Impresora bonita Unicode
  • LaTeX
  • MathML
  • Dot

Los objetos SymPy también se pueden enviar como salida a código de varios lenguajes, como C, Fortran, Javascript, Theano y Python.

SymPy usa caracteres Unicode para representar la salida en forma de letra bonita. Si está utilizando la consola Python para ejecutar la sesión SymPy, el mejor entorno de impresión bonito se activa llamando a la función init_session ().

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

Consola IPython para SymPy 1.5.1 (Python 3.7.4-64-bit) (tipos de suelo: python).

Estos comandos se ejecutaron:

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

La documentación se puede encontrar en https://docs.sympy.org/1.5.1/.

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

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

Si LATEX no está instalado, pero Matplotlib está instalado, utilizará el motor de renderizado Matplotlib. Si Matplotlib no está instalado, usa la bonita impresora Unicode. Sin embargo, el cuaderno Jupyter usa MathJax para renderizar LATEX.

En un terminal que no es compatible con Unicode, se utiliza una bonita impresora ASCII.

Para usar la impresora ASCII, use la función pprint () con la propiedad use_unicode establecida en False

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

También se accede a la impresora bonita Unicode desde pprint () y pretty (). Si el terminal admite Unicode, se utiliza automáticamente. Si pprint () no puede detectar que el terminal es compatible con Unicode, puede pasar use_unicode = True para forzarlo a usar Unicode.

Para obtener la forma LATEX de una expresión, use la función latex ().

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

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

También puede utilizar la impresora mathml. para ese propósito, importe la función print_mathml. Una versión de cadena se obtiene mediante la función 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>'