Python(SymPy,SciPy),从字符串创建符号lambda

我一直在努力获取方程的文本输入并将其评估为一个明确的积分.我需要一个可调用的函数来传递给scipy.integrate.

eq = "x**2"
func = lambda x: eq
func(2)

# outputs:
# x**2


# but if I:

func = lambda x: x**2
func(2)

# outputs:
# 4

解决方法:

不确定,但也许你在寻找

eq = "x**2"
func = eval("lambda x: " + eq)

请注意,如果eq来自不受信任的来源(例如用户输入),则使用eval()会很危险.

上一篇:使用lambdify将hard integral转换为lambda函数


下一篇:一些对于错排问题的简单思考