前面给大家讲过,函数是一种编程思想,是提高代码重复利用的设计思路,是代码设计更深层次的产物。今天要给大家讲的就是函数的核心:函数的参数
基本概念
1、函数的参数:是指函数完成某项功能所需要的信息。
举个例子,大家都知道print()函数,它可以完成打印功能,那么需要让它完成打印,就需要给它一个信息:打印的内容,那么这里的打印的内容就是print函数的参数。
2、函数的参数有哪几种类别:
- 默认参数:函数在定义过程中可以为指定参数默认的值,必须放在默认参数的左侧
- 可变参数:参数的个数不固定
- 关键字参数:参数的名字需要固定的参数
- 组合参数:多种类型的参数组合在一起
下面针对这几种参数进行实例说明
实例说明:默认参数
# 例:判断一个整数是奇数还是偶数def isDoule(num,constant=2): if num%constant==0: return True else: return False
上例中定义了一个isDoule函数来判断一个整数是奇数还是偶数,那么这个函数有两个参数,一个是num,一个是constant。根据这个函数的功能不难得出num这个参数是必须要的,我们叫必要参数;constant这个参数,我们给了它一个默认值,它就是默认参数。
# 一般情况下的调用print(isDoule(5,2))# 默认参数可以缺省print(isDoule(5))
因为这个函数isDoule有两个参数,一般说来,调用时我们就给它传递两个参数,比如num=5,constant=2;运行之后,返回的结果肯定为False;但是由于constant是个默认参数,所有,我们的传参数时,可以缺省掉默认参数,运行之后,结果仍未False。
但是,如果我们在调用函数isDoule时,给它传入参数,num=4,constant=3,如下:
def isDoule(num,constant=2): print(constant) if num%constant==0: return True else: return Falseprint(isDoule(4,3))
运行之后,constant的值变为了3,并且函数返回的结果为False。这说明,我们给默认参数传递的参数会覆盖掉函数定义时的默认值,函数将以新传递的参数进行运算。
实例说明:可变参数
# 任意数值得求和函数def sumNumber(*numbers): result=0 for n in numbers: result=result+n return result
上例中定义了求和函数sumNumber,它的参数是:*number,表示number是一个可变参数。这里需要大家注意的是,可变参数的数据类型只能是list或者tuple。
print(sumNumber(1,2,3))print(sumNumber(1,2,3,4,5,6))
我们可以分别给它传入参数(1,2,3)和(1,2,3,4,5,6),参数的个数是可以变化的。当我们的参数是不确定的list或者tuple的时候,我们就可以用可变参数来定义。
实例说明:关键字参数
def liveUser(**kw): for key,value in kw.items(): print("{}{}".format(key,value))
上例中定义了liveUser函数,它的参数是:**kw,表示kw是一个关键字参数。关键字参数的数据类型只能是字典类型{key:value}。函数liveUser是将关键字参数的键和值打印出来。
liveUser(k1="来了")
运行之后,打印出来:K1来了。这里大家应该也可以看出来,kw这个参数是关键字参数,同时也是可变参数,我们叫做可变关键字参数。还有一种叫做命名关键字参数:
# 命名关键字参数def worker(name,sex,*,age): print(name,sex,age)woker("张三","男",age=30)
我们定义的worker函数有三个参数,分别是:name、sex以及age,大家注意age前面有个*,表示age为命名关键字参数,它表示这个参数传递时是需要以字典的形式来进行的,并且字典的键名也指定为age,调用的时候应该这样来写:
woker("张三","男",age=30)
实例说明:组合参数
# 组合参数def schoolCourse(name,c="北京大学",*courseName,**kw): allCourse="".join(courseName) gradename=list(kw.values()) print("{}的{}{}的课程有:{}".format(c,name,gradename[0],allCourse))
组合参数就是将必要参数,默认参数,可变参数,关键字参数按照顺序组合在一起,它一般在功能多的函数中会用到。上例中给函数schoolCourse定义了组合参数:必要参数name、默认参数c="北京大学"、可变参数*courseName、关键字参数**kw。
schoolCourse("张三","清华大学",*("语文","数学","英语"),grade="大一")
根据上面介绍的几类参数的要求,来调用schoolCourse函数,给它传入对应的参数,运行之后,结果如下:清华大学的张三大一的课程有:语文 数学 英语
以上就是函数的几种参数,弄懂这几类参数的用法,基本上能完成所有函数的定义。
针对上面的实例,如有任何疑问,欢迎在评论区留言或者私信小编,小编会认认真真为大家解答哦!
喜欢小编的讲解思路的朋友,欢迎点下“关注”,非常感谢大家的支持!