检查 Symbol 在 sympy 中是否为负数

Check if Symbol is negative in sympy

在 sympy 中,您可以使用 is_negative 属性检查数字是否为负数,但是 returns None 用于符号。我希望能够检查 Symbol 前面是否有减号。我可以这样做:

from sympy import Symbol

x = Symbol("-G")

if str(x)[0] == "-":
    print("Value is preceded by a minus sign")

但是除了查看 Symbol 的字符串表示之外还有更好的方法吗?

您所显示的是一个符号“name”,其中有一个前导负数。您可以使用 x.name.startswith("-") 检查这样的前导负号。然而,更常见的是从语义上测试 expression/symbol 是否具有负系数。可以按如下方式完成:

>>> from sympy.core.function import _coeff_isneg as f
>>> from sympy.abc import x
>>> f(-x)
True

注意这里的 x 的名称为“x”,减号表示表达式 -x.

中的因子 -1