为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

料青山看我应如是 2023-07-27 16:35:57
我的目标是使用 sympify 将字符串转换为符号表达式,然后进行替换。import sympy as spEq_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 defineda据我所知,工作区中没有符号。我对吗?有没有办法将我从集合中获取的符号Eq_Sym.free_symbols放入工作区,以便我可以将它们替换为Eq_Sym.非常感谢您花时间阅读本文。
查看完整描述

1 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

你可以用globals()它:


import sympy as sp


Eq_Str = 'a*x+b'

Eq_Sym = sp.sympify(Eq_Str)

for s in Eq_Sym.free_symbols :

    globals()[s.name] = s;

print (Eq_Sym.subs(a,2)); #b + 2*x


查看完整回答
反对 回复 2023-07-27
  • 1 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信