我的任务如下:"编写一个名为operate的函数,它将2个名为a,b的整数和一个名为func的函数作为参数,它将2个整数作为参数。还要编写带有2个整数参数的函数add
,sub
,mul
和div
,并执行与其名称对应的操作并打印结果。致电operate(a, b, func)
会致电func(a, b)
"。我已经完成了前四部分,但我仍然坚持如何实施operate
。到目前为止,这是我的代码:
# this adds two numbers given
def add(a,b):
print (a + b)
# this subtracts two numbers given
def sub(a,b):
print (b - a)
# this multiplies two numbers given
def mul(a,b):
print (a * b)
# this divides two numbers given
def div(a,b):
print (a / b)
答案 0 :(得分:1)
要实现这一点,您需要return
来自您的功能,而不仅仅是打印一些东西。这使您可以在以后使用结果。要执行此操作,只需将return
语句与某个表达式一起使用:
def add(a, b):
return a + b
def sub(a, b):
return a - b
def mul(a, b):
return a * b
def div(a, b):
return a / b
我已将sub
操作的顺序更改为更符合通常定义减法的方式。
现在写一个operate
函数实际上非常简单。您已经获得了两个部分:签名应为operate(a, b, func)
,您应该致电func(a, b)
。这实际上几乎就是它最终的所有内容 - 您需要做的只是return
它(如果您愿意的话,您也可以print
):
def operate(a, b, func):
return func(a, b)
您现在可以执行以下操作:
print(operate(3, 2, add))
print(operate(3, 2, sub))
print(operate(3, 2, mul))
print(operate(3, 2, div))
这将导致输出:
5
1
6
1.5
在评论中我询问了标准库 - 你看,所有这些都已经由Python实现了。您可以使用以下命令替换前四个函数定义:
from operator import add, sub, mul, truediv as div
让您只定义operate
并进行一些测试。