我一直在努力获取方程式的文本输入并将其评估为定积分。我需要一个可调用函数来传递给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
Not sure, but maybe you are looking for
eq = "x**2"
func = eval("lambda x: " + eq)
Note that using eval()
is dangerous if eq
is from an untrusted source (e.g. user input).
您需要使用 eval 将 eq 作为代码运行,而不是将其视为字符串。
eq = "x**2"
func = lambda x: eval(eq)
func(2)
# outputs:
# 4
我不断收到以下语法错误,并且一直试图找出原因:
E="2x+1"
F=lambda x: (x, eval(E)) # to get an xy coordinate
但是当我将 E 更改为:
E="2*x+1"
菜鸟失误。:)