我有一个表达式的操作数和操作存储在单独的变量中,我该如何评估?

时间:2014-03-30 02:16:25

标签: python variables

所以,例如,我有

a=2 b= + c= 3

如何使用这些变量来评估2 + 3?

2 个答案:

答案 0 :(得分:1)

您无法将+指定给变量。你可以做的是存储它的“字符串表示”:

a = 2
b = '+'
c = 3

要评估操作,您可以使用eval()

>>> print eval(str(a) + b + str(c))
5

将评估作为字符串传递的表达式(这就是为什么我们使用第一个str(a)来获取整个字符串)

注意:

  • 如果还有另一种方法可以预先使用eval,请使用它。
  • 使用eval时必须非常小心,因为您可能会得到意想不到的结果。
  • 还有另一个名为exec()的函数,用于执行语句。

答案 1 :(得分:1)

operator模块包含实现内置运算符的函数。您可以构建一个字典,将运算符的特定符号映射到相应的函数,然后将其用作查找表来评估您的表达式。

import operator
>>> op_dict = { '+': operator.add, '-': operator.sub }
>>> a = 2
>>> b = '+'
>>> c = 3
>>> op_dict[b](a, c)
5