前面给大家讲过,函数是一种编程思想,是提高代码重复利用的设计思路,是代码设计更深层次的产物。今天要给大家讲的就是函数的核心:函数的参数

基本概念

1、函数的参数:是指函数完成某项功能所需要的信息

举个例子,大家都知道print()函数,它可以完成打印功能,那么需要让它完成打印,就需要给它一个信息:打印的内容,那么这里的打印的内容就是print函数的参数。




ln的python ln的python函数_ln的python


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。


ln的python ln的python函数_可变参数_02


但是,如果我们在调用函数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。这说明,我们给默认参数传递的参数会覆盖掉函数定义时的默认值,函数将以新传递的参数进行运算。


ln的python ln的python函数_默认参数_03


实例说明:可变参数

# 任意数值得求和函数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的时候,我们就可以用可变参数来定义。


ln的python ln的python函数_可变参数_04


实例说明:关键字参数

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函数,给它传入对应的参数,运行之后,结果如下:清华大学的张三大一的课程有:语文 数学 英语

以上就是函数的几种参数,弄懂这几类参数的用法,基本上能完成所有函数的定义。

针对上面的实例,如有任何疑问,欢迎在评论区留言或者私信小编,小编会认认真真为大家解答哦!

喜欢小编的讲解思路的朋友,欢迎点下“关注”,非常感谢大家的支持!