一、定义
1、Python 语言定义函数的格式为:
def 函数名(参数):
函数体
2、函数体的结束语句是: return 返回值。缺省为:return None,即函数缺省返回 None 。
3、Python 中函数是对象。对象能做的事,函数都可以做。
4、函数可以嵌套,即在函数内还可以再定义函数,例如:
def 函数一(参数1):
函数体一
def 函数二(参数2):
函数体二
def 函数名(参数):
函数体
二、位置参数、默认参数、关键字参数
参数可以有缺省值,也可以没有缺省值。有缺省值的参数必须在排在最右边。因为没有缺省值的参数在函数调用时,是按照位置来一一对应赋值的,所以又称为“位置参数”,有缺省值的参数,又称为“默认参数”。例如:
def fun(x,y,a=10,b=20): print(x+y+a+b)
fun(1,2,3) # 26
当函数调用时用“参数 = 值”的形式给参数赋值,这样的参数被称为“关键字参数”。因为python 运行程序在解析参数时, 是按照顺序来的, 位置参数先满足, 然后才能考虑其它参数,所以,关键字参数的赋值必须跟随在位置参数后面,也就是,位置参数必须在前,关键字参数必须在后,否则会报错。不过,关键字参数之间,因为已经指定了参数名,不会混淆,所以,它们相互之间位置可随意。例如:
def fun(x,y,a=10,b=20): print(x+y+a+b)
fun(1,2,b=5,a=6) # 14
三、可变长参数
1、可变长位置参数
def 函数名(* p):
函数体
当形数前面有一个星号 “*” 时,说明这部分参数是可多可少的。在实际调用函数时,以这个位置上的所有实参为元素组成一个元组赋给 p。例如:
def fun(x,y,*z):print(x,y,z,len(z)) # 第1、2个实参将分别赋给 x,y,剩余的实参组成元组赋给 z
fun(1,2,5,5,5,5,5,5) # 22 33 (5, 5, 5, 5, 5, 5) 6
2、可变长关键字参数
def 函数名(** d):
函数体
当形数前面有二个星号 “**” 时,说明这部分参数也是可多可少的,并且是以“参数 = 值”的形式给形数赋值。在实际调用函数时,以这个位置上的所有“参数:值”对为元素组成一个字典赋给 d。例如:
def fun(x,y,*z,**v): print(x,y,z,len(z),v,len(v)) # 第1、2给 x、y,所有关键字部分给 v,剩余的全给 z
fun(22,33,5,5,5,5,5,5,a=61,b=62,c=63) # 22 33 (5, 5, 5, 5, 5, 5) 6 {'a':61, 'b':62, 'c':63} 3
四、解包赋值
解包赋值,是指在实际调用函数时,在一个可迭代对象前加一个星号 “*”作为实参传递给函数,由函数在运行前自行解包,分别取出可迭代对象的元素给形参赋值。可迭代对象的元素个数与函数的形参个数必须相等,否则会报错。例如:
def fun(x,y,z,a,b,c): print(x,y,z,a,b,c)
lst = (11,12,13,14,15,16); fun(*lst) # 11 12 13 14 15 16
五、lambda 表达式
lambda 是第十一位希腊字母“兰木达”的英语名称。lambda 表达式用于声明匿名函数,即没有函数名的、临时使用的小函数。也就是说,如果一个函数的功能很简单,且是临时用一下,就可以用 lambda 表达式来替代。例如:
fff = lambda x, y : x + y # 相当于:def fff(x,y): return x + y
print(fff(2,3)) # 5
———————————————— 本篇完 ————————————————
看完之后,麻烦您顺手点击下方 “点赞” 两个字给我点个赞吧 ^-^ , 谢谢您了。
如果您还能像我小学一年级班主任好老师那样,给我随心写上几句表扬或批评的话语,那真是感激不尽!
在我人生的道路上,有了您的鼓励和指导,我一定成长快快。