私は文字列方程式(0に等しい)を解析し、アクセス可能な変数の辞書を使用して解くことができます。例えばSymPyを使用して一般的に解析して方程式を解く
:
s = '(x/z)-y'
eq = parse(s)
eq.solve({'x': 10, 'y': 5})
print(eq)
>>> {'z': 2}
は、今私はヶ月前にこのような何かをしたコードを書いていたが、私はちょうどそれを見つけることができません。しかし、私はSymPyとそのsympify関数を解決関数と共に使用したことを覚えています。私はこれらの関数に関するドキュメントをチェックしましたが、私が望むようにそれらを動作させる方法について私の頭を覆すことはできませんでした。
その他の質問: 変数を何とかしてラップすることができますか?私は単なる文字以上のものを使うことができますか? 例:代わりに '{MYVAR-42}' だけ 'X' 私が持っている可能性の
EDIT:
私は最終的に私が欲しかったものでしたいくつかのコードの書き込みに成功オーケー:
eq = sympify('(x/y)-z', locals={'x': 10, 'z': 5})
solution = solve(eq, dict=True)
print(solution)
>>> [{'z': 2}]
をしかし、私の "余分な"質問は残っています。
' 'MYVAR-42'' - ちょうど文字列を解析します。 – aIKid
@alKidどうやって?角括弧を含む文字列でsympifyを使用すると、エラーが発生します(辞書などと思うので)。私はすべての{*}の正規表現を置き換えて文字で置き換えることができました。そして、解決が完了したら、私が置き換えたときに作成した辞書を使ってそれらを戻すことができました。 – fgblomqvist