Python:如何使用字典将运算符的字符串表示形式指定给数学运算符?
我的目标是创建一个做简单算术的UDF。我希望函数取2个值,然后是运算符的字符串表示形式,例如“mulitiply”,并在x到y上执行运算符。这是我第一次尝试这样做,请原谅我弄得一团糟Python:如何使用字典将运算符的字符串表示形式指定给数学运算符?,python,dictionary,user-defined-functions,Python,Dictionary,User Defined Functions,我的目标是创建一个做简单算术的UDF。我希望函数取2个值,然后是运算符的字符串表示形式,例如“mulitiply”,并在x到y上执行运算符。这是我第一次尝试这样做,请原谅我弄得一团糟 def_myArithmetic(x, y, op): op={'multiply': *, 'divide': /, 'add': +, 'subtract':-} **some loop** **return calculation** 到目前为止我所做的 import
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)
使用此代码块在调用函数时返回错误
我知道这本词典不能用。我相信这与在一个引用中有多个键有关
我相信我写得差不多,但显然不知道怎么写。当我尝试实施我选择的规则时,有一些参考资料将非常有帮助
感谢您的反馈您的字典变量正在替换
op
参数。请为此使用其他名称
您需要使用string参数作为键来访问相应的dictionary元素
您需要调用运算符函数,而不仅仅是将其放入带有参数的元组中
没有理由使用for
循环
没有运算符。乘法
,它是运算符.mul
。找到完整的列表
使用模块
operator.add
,operator.mul
,等等。我可以问一下UDF中的一个例子吗?{'multiply':operator.mul,}
您的字典是正确的方法,您只需要使用这些函数作为值。这非常有用,谢谢Barmar。这非常有用,非常感谢Barmar!。我4天前才开始编写代码。这使大量的阅读变成了实践。
def do_arithmetic(x, y, op):
operations = {
'multiply': operator.mul,
'divide': operator.truediv,
'add': operator.add,
'subtract': operator.sub
}
return operations[op](x, y)