3

方程式のテキスト入力を取り、それを定積分として評価するのに苦労しています。に渡す呼び出し可能な関数が必要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
4

5 に答える 5

5

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).

于 2011-05-03T15:58:15.510 に答える
2

eq を文字列として扱わずにコードとして実行するには、eval を使用する必要があります。

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

# outputs:
# 4
于 2011-05-03T15:59:26.670 に答える
2

sympifyが探しているものかもしれません。文字列式を sympy オブジェクトに変換します。

例えば:

import sympy as sp
f=sp.sympify('x**2+sin(y)')

また、 autowrapを使用して、sympy オブジェクトを呼び出し可能な関数に変換できます。

于 2011-08-12T19:55:20.507 に答える