问题如下:
编写一个以两个函数为参数的函数compose,我们将它们称为Fa
和Fb
,并返回一个函数Fres
,这意味着另一个函数的outdata是第一个函数的indata,例如:Fres(x) = Fa(Fb(x))
。
运行示例:
>>> def multiply_five(n):
... return n * 5
...
>>> def add_ten(x):
... return x + 10
...
>>> composition = compose(multiply_five, add_ten)
>>> composition(3)
65
>>> another_composition = compose(add_ten, multiply_five)
>>> another_composition(3)
25
所以据我所知,如果我发送3,函数合成将取3+10=13 然后将结果发送到乘法函数中:13*5,即65。 这是我目前编写的代码:
^{pr2}$我遇到编译错误,我尝试了一些不同的方法:
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
composition = compose(multiply_five, add_ten)
File "C:\Users\Jim\Desktop\tdp002\5h.py", line 10, in compose
return func1(comp(arg))
NameError: name 'arg' is not defined
您不想调用
func1
或func2
;您只想返回一个函数,该函数将同时调用这两个函数。在也可以使用
^{pr2}$lambda
表达式来创建组合函数。在试试这个:
相关问题 更多 >
编程相关推荐