python - sympy:如何因缺少常数项而得到零

标签 python sympy coefficients

在 SymPy 0.7.5(Python 2.7.8-64 位)上。当常数项为零或不存在时,我无法从表达式中获取常数项(不存在的常数与零常数相同,对吧?)。

我可以使用 expr.coeff(x, 0) 从表达式中获取常数项。例如:

isympy ## Load sympy etc...

(x + 3).coeff(x, 0)        #-> 3 ok
(x).coeff(x, 0)            #-> 0 ok
(4*x**2 + 3*x).coeff(x, 0) #-> 0 ok

现在,在这些情况下我怎样才能得到 0?

(4*x).coeff(x, 0)     #-> 4 
(4*x**2).coeff(x, 0)  #-> 4 why not 0?!

我确定之前有人问过这个问题并记录在案,但至少在没有一些尴尬的解决方法的情况下我找不到答案。 谢谢 达里奥

编辑 交互式 session 的完整输出:

python
Python 2.7.8 (default, Sep 14 2014, 18:20:38) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> import sympy
>>> 
>>> x= sympy.symbols('x')
>>> (4*x).coeff(x, 0)
4
>>> sympy.__version__
'0.7.5'

最佳答案

解决方案:升级到 sympy 0.7.6。除非我做了一些愚蠢的事情,否则这似乎是 0.7.5 的错误。

python
Python 2.7.8 (default, Sep 14 2014, 18:20:38) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sympy
>>> x= sympy.symbols('x')
>>> (4*x).coeff(x, 0)
0
>>> sympy.__version__
'0.7.6'

关于python - sympy:如何因缺少常数项而得到零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29434911/

相关文章:

python - 为什么 Sympy 会切断系数较小的多项式项?

python - 尝试检查列表列表中的值是否小于零时出现错误 'float' 对象不可迭代

python - Pillow 安装错误 : command 'gcc' failed with exit status 1

python - Sympy - 仅在特定位置查找矩阵的逆?

r - 执行无截距的戴明回归

python - 如何解释 K-Means 聚类的轮廓系数?

python - 遍历 XML?

Python 日志记录 : Why is __init__ called twice?

python - 如何使用 sympy 解方程?

python - 将积分分解为椭圆积分