如何解决如何正确替换有符号表达中的符号?
我的目标是使用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
中替换它们。
非常感谢您抽出宝贵的时间阅读本文。
解决方法
您可以使用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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。