-1

我知道 eval() 对于这样的事情非常有用:

x = 3
y = 2
myformula = "x + y"
print eval(myformula)
>>> 5

但是,如果我不想硬编码变量名称和值而是使用字典怎么办?

mydict = {'x':3, 'y':2, 'z':5}
myformula = "x + y + z"
print eval(myformula)
>>> 10
or,
mydict = {'a':100, 'b':10, 'c':1}
myformula = "(a * b) - c"
print eval(myformula)
>>> 999

我查找了如何将变量分配给变量,但我无法将其他答案应用于我的问题。我仍然想为 myformula 字符串保留该符号。任何帮助,将不胜感激。

谢谢。

伊利诺伊州保罗
芝加哥

4

1 回答 1

5

这就是第二个和第三个参数eval的用途(阅读文档):

>>> d = {'x':3, 'y':2, 'z':5}
>>> eval("x + y + z", d)
    10

请注意,使用eval任意用户输入是不安全的(想想rm -Rf /)。躲开它。

于 2013-03-01T07:44:12.890 回答