SymPy-sympify()関数
sympify()関数は、SymPy式として使用できるように、任意の式を変換するために使用されます。整数オブジェクトなどの通常のPythonオブジェクトはSymPyで変換されます。整数などの文字列もSymPy式に変換されます。
>>> expr="x**2+3*x+2"
>>> expr1=sympify(expr)
>>> expr1
>>> expr1.subs(x,2)
上記のコードスニペットは、次の出力を提供します-
12
すべてのPythonオブジェクトをSymPyオブジェクトに変換できます。ただし、変換では内部的にeval()関数が使用されるため、サニタイズされていない式は使用しないでください。使用しないと、SympifyErrorが発生します。
>>> sympify("x***2")
---------------------------------------------------------------------------
SympifyError:例外が発生したため、式 'の構文解析ができませんでした' x *** 2 ''が失敗しました。
sympify()関数は次の引数を取ります:* strict:デフォルトはFalseです。Trueに設定すると、明示的な変換が定義されているタイプのみが変換されます。それ以外の場合、SympifyErrorが発生します。*評価:Falseに設定すると、算術演算子と演算子は、式を評価せずに同等のSymPyに変換されます。
>>> sympify("10/5+4/2")
上記のコードスニペットは、次の出力を提供します-
4
>>> sympify("10/5+4/2", evaluate=False)
上記のコードスニペットは、次の出力を提供します-
$\frac{10}{5}+\frac{4}{2}$