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) преобразуют объект в строку, используя правила преобразования строк.