繁体   English   中英

Python:如何使用字典将运算符的字符串表示形式分配给数学运算符?

[英]Python: How can I assign string representations of operators to mathematical operators using a dictionary?

我的目标是创建一个执行简单算术的 UDF。 我希望 function 采用 2 个值,然后是运算符的字符串表示形式,例如“乘数”,并在 x 到 y 上执行运算符。 这是我第一次尝试这个,请原谅混乱。

def_myArithmetic(x, y, op):
     op={'multiply': *, 'divide': /, 'add': +, 'subtract':-}
     **some loop**
         **return calculation**

到目前为止我所管理的

import operator
def do_arithmetic(x, y, op):
  op={'multiply': operator.multiply,'divide': operator.divide,'add': operator.add ,'subtract': operator.subtract}
  for i in range(x,y):
     print (x, y)

调用 function 时,使用这组代码会返回错误。

我知道这本词典不起作用。 我相信这与在一个参考中拥有多个键有关吗?

我相信我在正确的行附近的某个地方,但显然不知道如何写这个。 当我尝试实施我选择的规则时,有一些参考资料会很有帮助。

感谢您的反馈意见

您的字典变量正在替换op参数。 为此使用不同的名称。

您需要使用字符串参数作为键来访问相应的字典元素。

您需要调用运算符 function,而不仅仅是将其与 arguments 放在一个元组中。

for循环没有理由。

没有operator.multiply ,它是operator.mul 此处查找完整列表。

def do_arithmetic(x, y, op):
    operations = {
        'multiply': operator.mul,
        'divide': operator.truediv,
        'add': operator.add,
        'subtract': operator.sub
    }
    return operations[op](x, y)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM