2013-12-03 4 views
2

Этот код взят из учебника SymPy: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

Это правильно, но в tutorial выход был:

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

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

При необходимости: IDE является PyCharm, питона версии. is 3.3

ответ

1

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

>>> 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 statement (Python 2.x) или print function (Python 3.X) преобразует объект в строку с помощью rules for string conversion.

+0

Большое спасибо, все прошло отлично. По какой причине вы пишете «>>>» в начале каждой строки вашего кода? – Netherwire

+0

Вот как выглядит код в интерактивном сеансе Python (например, если вы вводите 'python' в командной строке). – asmeurer

+0

Различные варианты 'init_printing', которые вы использовали здесь, обычно не нужны. Если вы не обнаружите, что выход по умолчанию не является оптимальным, по умолчанию, как правило, лучше всего идти. – asmeurer

 Смежные вопросы

  • Нет связанных вопросов^_^