如何在不进行评估的情况下从多项式中提取分子和分母?

时间:2016-08-24 18:50:31

标签: sympy

我有以下表达式

n=(A**x-B-C)*(D-1)
d=(D-1)

我得到以下结果:

{{1}}

我的预期结果是

{{1}}

有没有办法表达或需要编写自定义函数来处理

1 个答案:

答案 0 :(得分:4)

使用UnevaluatedExpr()来阻止对表达式进行评估。

from sympy import symbols, fraction, UnevaluatedExpr

A,x,B,C,D = symbols('A x B C D')

expression = (A**x-B-C)/(D-1)*UnevaluatedExpr(D-1)
n,d = fraction(expression)
print(n)
print(d)

返回

(A**x - B - C)*(D - 1)
D - 1

有关更多详细信息,请参阅Sympy Advanced Expression Manipulation文档页面。