2015-06-14 24 views
-3

我有一個計算模式作爲字符串Python的初始化字符串作爲變量

calc = "((k+m+46)/2)" 

和含有像

m = 2 
k = m*2 

所有唯一字符串變量一些字符串。現在我想將它們初始化爲Python。 我的目標是用計算模式計算變量值。

計算應返回26

編輯:

我嘗試執行的是增值經銷商,但在某些情況下,我不得不執行的是K = M * 2在第一次和我沒有定義誤碼M!

+0

'EXEC( 'M = 2; k = M * 2;印刷((K + M + 46)/ 2)')' – Tempux

+0

一般安全這樣的方式會使用[sympy](http://www.sympy.org/en/index.html)來評估符號方程式。要將字符串轉換爲可計算表達式,您可以使用[sympy解析功能](http://docs.sympy.org/latest/modules/parsing.html)。 –

+0

'calc應該返回'?變量不能返回... – Zizouz212

回答

0
#!/usr/bin/python 

m = 2 
k = m*2 
calc = "((k+m+46)/2)" 

result = eval(calc) 

print result 

結果

26 
0

一個簡單的解決方案是使用格式化字符串。您可以將您的方程改寫爲calc =((m + 2),k = 4)。我建議在評論中使用上面提到的一些專業圖書館。