第6关:使用关键字参数
任务描述
在 Python 中函数的参数有四大类,分别为:位置参数、默认参数、可变参数、关键字参数(也叫键-值参数)。其中位置参数是使用频率最高的,但是其他参数也有很高的使用价值。

本关的主要任务是让学习者掌握位置参数与关键字参数的差别,以及两种参数的使用方法。

相关知识
位置参数
位置参数是最普通的参数,如果在定义函数的时候有位置参数,那么在调用函数的时候一定要对参数进行赋值,而且赋的值与参数位置一一对应。例如:

def method(var1,var2):
print(var1,var2)
调用时语句为:

method(1,2)
此时函数中var1 = 1,var2 = 2

关键字参数
在函数的参数比较多的时候,如果我们按照位置去对参数进行赋值会很容易出现错误,为了让程序不出现错误,我们便使用关键字参数。在关键字参数中我们为参数起一个名字,在调用时便通过这个名字进行赋值。例如:

def method(var1,var2):
print(var1,var2)
method(var1 = 1,var2 = 2)
结果为:

1 2
在调用函数时即使将参数位置调换,结果也不会出错。
关键字参数在定义函数时可以设置关键字参数默认值,例如:

def method(var1,var2 = 2):
print(var1,var2)
method(1)
结果为:

1 2
编程要求
本关的编程任务是补全 src/step6/step6.py 文件中的代码,要求改写上个关卡任务的函数diff。

本关涉及的 src/step6/step6.py 文件的代码框架如下:

coding:utf-8

from math import sin, cos
x = float(input())
#请在此添加代码,自行定义diff函数并实现此函数
#********** Begin #
#
* End **********#
print (“%.6f”%(diff(sin)(x)))
测试说明
本关要求学习者直接填入代码,然后运行程序并根据程序输出的结果判断填入的代码是否正确。

本关测试样例如下:

测试输入:
0.1
预期输出:
0.994988
其实没啥好注意的,就是与上一关的delX不同了,巨脑瘫的操作。。。

def diff(f):
#请在此添加代码,求出函数f的导数
#********** Begin *********#
    f1=lambda x:(f(x+0.01)-f(x-0.01))/(2*0.01)#需要注意与上一关的不同。delX=0.01
    return f1

#**********  End  *********#

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐