[英]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.