Skip to main content
 首页 » 编程设计

python之Sympy integrate() 不会以常见分数的自然形式产生输出

2025年05月04日8落叶无声

此代码摘自 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

请您参考如下方法:

你需要一个 pretty-print 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 将对象转换为字符串.