代码之家  ›  专栏  ›  技术社区  ›  Abhilash Muthuraj

在python中将运算符赋给变量?

  •  28
  • Abhilash Muthuraj  · 技术社区  · 14 年前

    a * b
    

    它能像这样计算和操作两个操作数吗?

    a = input('enter a value')
    b = input('enter a value') 
    op = raw_input('enter a operand')
    

    那我怎么连接op和两个变量呢 a b
    + , - , % , $ 然后分配和计算。。。。

    a op b ,如何告诉编译器op是运算符?

    3 回复  |  直到 9 年前
        1
  •  65
  •   bourgeoisiefrog Matthew Flaschen    6 年前

    import operator
    ops = {
        "+": operator.add,
        "-": operator.sub,
        "*": operator.mul,
        "/": operator.div
    }   
    op_char = input('enter a operand')
    op_func = ops[op_char]
    result = op_func(a, b)
    
        2
  •  10
  •   Luciano Ramalho    14 年前

    http://docs.python.org/library/operator.html 公开与几乎所有Python操作符对应的函数。可以将运算符符号映射到这些函数以检索适当的函数,然后将其分配给op变量并计算op(a,b)。

        3
  •  1
  •   Jordan Lewis    14 年前

    将输入字符串与操作数列表进行比较并确定其对应的运算符之后,就可以使用Python标准库的 operator module 计算将运算符应用于两个操作数的结果。

        4
  •  0
  •   Eeshaan    4 年前

    我知道这是一条非常古老的线索,但我相信当时人们并不知道 eval 函数(可能是python3附带的)。下面是这个问题的最新答案

    a = input('enter a value')
    b = input('enter a value') 
    op = input('enter an operand')
    expression = a + op + b # simple string concatenation
    result = eval(expression)
    

    如果不希望输入始终有效 ast.literal_eval 例如,如果 a , b op 分别是5,10,+ result 是15岁