我的目標是使用 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
提交
取消