Sympy integrate()不会以公共分数的自然形式产生输出

时间:2013-12-03 16:40:34

标签: python 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

这是正确的,但在tutorial中,输出是:

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

我如何达到这种形式的输出?

如有必要: IDE 是pyCharm, python ver。是3.3

1 个答案:

答案 0 :(得分:1)

你需要一台漂亮的打印机pprint而不是普通的print。请参阅Sympy Tutorial部分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)使用{{3将对象转换为字符串}}。