如果SymPy表达式包含符号,我想以编程方式找出。例如,
import sympy
x = sympy.Symbol('x')
y = sympy.Symbol('y')
a = 4 + x**2 + y
b = 4 + y**2
a
包含x
和y
,b
仅包含y
。
答案 0 :(得分:5)
您也可以使用.atoms(Symbol)
进行检查。在某些情况下,atoms(Symbol)
与.free_symbols
不同。 free_symbols
不会返回dummy
符号,例如积分变量。
它通常是你想要的,因为表达式在数学上不依赖于虚拟符号
例如:
>>> Integral(f(x), (x, 0, 1)).atoms(Symbol)
set([x])
>>> Integral(f(x), (x, 0, 1)).free_symbols
set([])
答案 1 :(得分:4)
>>> x in a.free_symbols, y in a.free_symbols
(True, True)
>>> x in b.free_symbols, y in b.free_symbols
(False, True)