赞
踩
本关的编程任务是补全 src/step5/step5.py 文件中的代码,完成函数diff(f)
,它返回函数f
的导数。
本任务中,Δx
的值取 0.001 ,存放于变量 delX
中。
本关涉及的 src/step5/step5.py 文件的代码框架如下:
# coding:utf-8
from math import sin, cos
delX = 0.001
x = float(input())
def diff(f):
#请在此添加代码,求出函数f的导数
#********** Begin *********#
#********** End *********#
print ("%.2f"%(diff(sin)(x)))
本关要求学习者直接填入代码,然后运行程序并根据程序输出的结果判断填入的代码是否正确。
本关测试样例如下:
测试输入: 0.1
预期输出: 1.00
测试输入: 2.4
预期输出: -0.74
这道题很多初学者应该看不太懂,因为这里对lambda匿名函数还有一个用处没有说明。
Lambda表达式的主要用途有以下几个方面:
这里的diff(sin)(x)分别传入了匿名函数sin和x,所以这里的f()其实是匿名函数sin()。
所以这题还考察了回调函数。这里相关知识并没有说明,框架也给的莫名其妙,所以我一开始也没有看明白。
- # coding:utf-8
- from math import sin, cos
- delX = 0.001
-
- x = float(input())
-
- def diff(f):
- #请在此添加代码,求出函数f的导数
- #********** Begin *********#
- result = lambda x:(f(x + delX) - f(x - delX)) / (2 * delX)
- return result
- #********** End *********#
-
- print("%.2f"%(diff(sin)(x)))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。