前言
单纯记录学习过程,如有错误请多多指教
一、函数定义的三种方式
无参函数:函数没有参数传入
有参函数:函数有参数传入
空函数:函数内部为空,但是内部必须有代码块,用pass或者return none代替
作用:占位,暂时不知道怎么构建这个函数,现在留个位置
二、函数的返回值
- 变量名是用来接收变量值,函数名是用来接收返回值
- 返回值可以是任何数据类型,当函数返回多个值的时候,会以元组()的形式,将多个值包在一起。
- 未设置返回值的时候,函数默认返回none
- return会终止函数
三、函数的调用
#定义
def 函数名():
代码块
return 返回值
#调用
函数名()
四、函数的参数调用
默认形参:
def max(a = 10):
代码块
return a
默认形参,是在定义函数时,在形参位置提前定义好该形参的值。调用函数时,如果没有赋值对应的形参,则取用默认值;如果赋值,则使用所赋的值。并且默认形参
必须在位置形参
的后面
应用场景:该值大多数情况下不需要改变,且该函数使用频繁
关键字实参:
def max(a, b):
代码块
return a
max(b = 10, a = 20)
在调用函数过程中,可以直接以关键字 = 值的方式进行调用,但是需满足以下条件:
- 关键字与形参名称一致
- 关键字实参使用的位置,需要在位置实参后面使用,如max(x=10,20)为错误用法
应用场景:函数参数非常多,使用关键字实参方便区分各个赋值内容,且关键词顺序可以不按照定义的形参顺序
五、可变长参数
可变长实参:
使用方法(函数调用中使用):
函数名(*a, **b)
其中,a为一个列表或者元组,b为一个字典,使用过程中,函数会将a中的值一个个取出来,输入到函数中。将b中的元素,以键值对的方式,以实参传递给函数
可变长形参
使用方法(函数定义中使用):
Def 函数名(*a, **b)
其中,a接收所有的位置实参,然后以元组的形式保存下来,但是只能接受位置实参,不能接收关键字实参。b接收所有的关键字实参,然后以字典的形式保存下来。
约定俗成:*后面必须写args,**后面必须写kwargs