如何正确替换sympyified表达式中的符号?

我的目标是使用 sympify 将字符串转换为符号表达式,然后进行替换。


import sympy as sp


Eq_Str = 'a*x+b'

Eq_Sym = sp.sympify(Eq_Str)

然后,例如,替换a其他东西:


Eq_Sym.subs(a,2)

但我收到错误:


Traceback (most recent call last):


  File "<ipython-input-5-e9892d6ffa06>", line 1, in <module>

    Eq_Sym.subs(a,2)


NameError: name 'a' is not defined

a据我所知,工作区中没有符号。我对吗?有没有办法将我从集合中获取的符号Eq_Sym.free_symbols放入工作区,以便我可以将它们替换为Eq_Sym.


非常感谢您花时间阅读本文。


料青山看我应如是
浏览 94回答 1
1回答

有只小跳蛙

你可以用globals()它:import sympy as spEq_Str = 'a*x+b'Eq_Sym = sp.sympify(Eq_Str)for s in Eq_Sym.free_symbols :&nbsp; &nbsp; globals()[s.name] = s;print (Eq_Sym.subs(a,2)); #b + 2*x
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python