我的目标是使用 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
添加回答
举报
0/150
提交
取消