Sympy integrate() не производит вывод в натуральной форме общей дроби

Этот код взят из учебника Sympy:

init_printing(use_unicode=False, wrap_line=False, no_global=True)
x = Symbol('x')
r = integrate(x**2 + x + 1, x)

print(r)

Выход: x**3/3 + x**2/2 + x

Это правильно, но в учебнике вывод был:

 3    2
x    x
-- + -- + x
3    2 

Как я могу достичь этой формы вывода?

При необходимости: IDE - это pyCharm, python ver. 3,3

1 ответ

Решение

Вам нужен симпатичный принтер pprint вместо нормального print, Обратитесь к разделу Учебное пособие Sympy.

>>> from sympy import *
>>> init_printing(use_unicode=False, wrap_line=False, no_global=True)
>>> x = Symbol('x')
>>> r = integrate(x**2 + x + 1, x)
>>> print(r)
x**3/3 + x**2/2 + x
>>> pprint(r)
 3    2    
x    x     
-- + -- + x
3    2

Примечание. Для нестроковых объектов оператор print (Python 2.X) или функция печати (Python 3.X) преобразуют объект в строку, используя правила преобразования строк.

Другие вопросы по тегам