Python 如何确定Sympy变量是否复杂?

Python 如何确定Sympy变量是否复杂?,python,sympy,complex-numbers,Python,Sympy,Complex Numbers,我正在写一个代码,其中包括求解这个方程 X = solve(Theta_Mod_Eqn*Ramp_Equation/(x+PT) - C, x) 我正在使用Symphy库,现在方程有7根,少数是复杂的,少数是真实的。我无法隔离它们,因为isinstance(I,complex)总是返回true for i in X: if not isinstance(i,complex): if (i>-0.01 and i<maxSheaveDisp):

我正在写一个代码,其中包括求解这个方程

X = solve(Theta_Mod_Eqn*Ramp_Equation/(x+PT) - C, x)
我正在使用Symphy库,现在方程有7根,少数是复杂的,少数是真实的。我无法隔离它们,因为
isinstance(I,complex)
总是返回true

for i in X:
    if not isinstance(i,complex):
        if (i>-0.01 and i<maxSheaveDisp):
            A = i;

如何确定变量是否为复数?

实数集是复数集的子集。所以,每个实数都是复数。例如,3是一个复数

正确的问题是如何找出根是否为真。为此,如果i是SymPy符号,则可以使用
i.is_real

for i in X:
    if i.is_real:
        if (i>-0.01 and i<maxSheaveDisp):
            A = i
对于X中的i:
如果i.u是真实的:
如果(i>-0.01和i
for i in X:
    if i.is_real:
        if (i>-0.01 and i<maxSheaveDisp):
            A = i