¿Cómo imprimir bastante en el portátil ipython a través de sympy?

Intenté pprint , print , el primero solo imprime la versión Unicode, y el segundo no hace bonitos impresiones.

 from sympy import symbols, Function import sympy.functions as sym from sympy import init_printing init_printing(use_latex=True) from sympy import pprint from sympy import Symbol x = Symbol('x') # If a cell contains only the following, it will render perfectly. (pi + x)**2 # However I would like to control what to print in a function, # so that multiple expressions can be printed from a single notebook cell. pprint((pi + x)**2) 

necesitas usar display:

 from IPython.display import display display(yourobject) 

Elegirá la representación apropiada (texto / LaTex / png …), en la versión suficientemente reciente de la pantalla IPython (6.0+) se importa de forma predeterminada, aún así recomendamos importarla explícitamente.

El problema es con su statement init_printing. En un cuaderno, no desea ejecutar látex, en su lugar, debe usar mathjax, así que intente esto en su lugar:

 init_printing(use_latex='mathjax') 

Cuando uso esto, obtengo una impresión bastante normal en todas partes, incluso cuando tengo una expresión simple como la última línea de la celda.

Esto funciona,

 from IPython.display import display, Latex from sympy import * x = symbols('x') display(x) int_x = Integral(cos(x)*exp(x), x) result = "$${} = {}$$".format(latex(int_x), latex(int_x.doit())) display(Latex(result)) derv_x = Derivative(cos(x)*exp(x), x) result = "$${} = {}$$".format(latex(derv_x), latex(derv_x.doit())) display(Latex(result)) 

Pruébalo por ti mismo.