我想能夠解析字符串方程(等於0),然後通過使用我有權訪問的變量字典來解決它們。使用SymPy來一般地解析和求解方程
例如:
s = '(x/z)-y'
eq = parse(s)
eq.solve({'x': 10, 'y': 5})
print(eq)
>>> {'z': 2}
現在我寫的代碼,一個月前做了這樣的事情,但我無法找到它。不過我記得我使用了SymPy及其sympify函數,以及它的求解函數。我已經檢查過關於這些功能的文檔,但是我一直無法圍繞如何讓他們按照我的意願工作。
還有一個額外的問題: 是否有可能以某種方式包裝變量,以便我可以使用更多的東西而不僅僅是一封信給他們? 實例:不 '{MYVAR-42}' 的是 'x' 我能有
編輯:
好吧,我終於成功地寫一些代碼,做了什麼,我想:
eq = sympify('(x/y)-z', locals={'x': 10, 'z': 5})
solution = solve(eq, dict=True)
print(solution)
>>> [{'z': 2}]
但我的「額外」問題依然存在。
''MYVAR-42'' - 只是解析字符串。 – aIKid
@alKid如何?如果我在包含括號的字符串上使用sympify,它會給我錯誤(因爲它認爲它是字典或其他東西)。我想出了一個解決方案:我可以用正則表達式代替所有{*}並用字母替換它們,然後在解決完成後,我可以使用替換時創建的字典將它們放回去。 – fgblomqvist