Python:将Number和Eval字符串分配给数字

时间:2017-02-28 07:54:02

标签: python variables dictionary eval formula

我想通过为变量和数字分配字符串来评估公式。 在这个例子中,我想要输出5。

更多细节:我正在编写一个程序,用户可以在其中输入公式并在公式编号中分配这些字母(它保存在字典中)。然后程序应该用给定的数字计算公式的值。 那么我的问题就是“评估”。公式。请参阅以下代码中的[?]。

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

到目前为止我使用vars()[?]但现在我有一个问题重新定义我的变量(例如,对于4的变化,变量()[a] = 4不会改变任何东西,我仍然得到5)

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

那么有什么替代vars()来解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

您可以给eval一个字典用作全局变量:

print(eval(formula, dict1))