我想编写一些接受1输入的函数。输入可以是数字(整数、浮点数、Sympy常量(如sympy.pi )或实数(如sympy.sin(5))的表达式),也可以是渐近表达式(如x**2-2*y+5)。
我需要的是确定:
输入是数字(没有符号)吗? 2-如果输入是表达式,是否存在特定变量?
我尝试过.free_symbols,如果输入是整数并抛出异常,它就会失败。同样,如果输入是sympy.sin(5),则sympy.sin(5)失败。
提前谢谢。
发布于 2022-04-30 19:21:38
在SymPy中有一个名为sympify的函数,其目的是将非SymPy对象转换为SymPy表达式,例如,int变为SymPy Integer等。如果您对输入进行归一化处理,则可以使用free_symbols。
In [6]: def inspect(expr):
...: expr = sympify(expr)
...: symbols = expr.free_symbols
...: if not symbols:
...: print(expr, 'has no symbols')
...: else:
...: print(expr, 'has these symbols:', ', '.join(map(str, symbols)))
...:
In [7]: inspect(1)
1 has no symbols
In [8]: inspect(pi)
pi has no symbols
In [9]: inspect(x+y)
x + y has these symbols: y, xhttps://stackoverflow.com/questions/72070714
复制相似问题