2017-02-28 69 views
0

我想通過將字符串分配給變量和數字來評估一個公式。 在這個例子中,我想要輸出5.Python:分配和評估字符串到數字

更多詳細信息:我正在編寫一個程序,用戶可以在其中輸入公式並在公式編號中指定這些字母(它保存在字典中) 。然後程序應該用給定的數字計算公式的值。 然後我的問題是'評估'的公式。請參閱以下代碼中的[?]。

formula='a+b' 
a='a' 
b='b' 
dict1={} 
dict1[a]=3 
dict1[b]=2 
[?] 
print(eval(formula)) 

我用瓦爾(),只要[?]但現在我有一個問題重新定義我的變量(例如,用於改變到4,乏()[α] = 4時不改變任何東西,我仍然得到5)

vars()[a]=dict1[a] 
vars()[b]=dict1[b] 

那麼是否有替代vars()來解決這個問題?

+1

你需要編輯的問題更加清晰。你想達到什麼目的?爲什麼?此外,你不應該使用'dict'作爲變量名稱,因爲它是一個python關鍵字。 –

+1

不是python關鍵字,而是內置的。如果它是一個關鍵字,它將是非法的語法(小挑逗,但你是對的!) –

+0

更改eval exec(「打印」+公式),但你絕不應該做這個 – abccd

回答

2

你可以給你的EVAL字典爲全局變量的使用方法:

print(eval(formula, dict1))