--------小编学习python的第七天总结-------
概述:函数是一段具有特定功能的代码段,只需写一次,可以重复调用,提高了代码的复用性
函数的声明:
def 函数名(形参)
注释:函数说明
函数体
return
调用的格式:
函数名(实参)
参数:
形参:在定义函数时写在()中的
实参:在调用函数时写在()中的
位置参数:
实参与形参的位置一一对应
关键字参数:
通过形参名=实参这种格式传递参数,不受形参位置的影响,根据关键字给指定的形参传递参数
默认值参数:
在声明函数时,给形参设置默认值,但是默认值参数,要写在位置参数的后面
格式:
def 函数名(*args,**kwargs)
*args:元组参数(非关键字收集参数)
调用函数时,将传递的多余的位置参数进行收集,收集到args参数中,且是元组类型
参数顺序:
位置参数,非关键字收集参数,关键字参数,默认值参数
**kwargs:字典参数(非关键字收集参数)
将多余的参数使用kwargs参数以字典形式进行收集
参数顺序:
位置参数,元组参数,关键字参数,默认值参数,字典参数
使用return返回函数的结果
没有返回值的函数返回的是None
return后面可以将多个值返回,值与值之间用逗号隔开,但是返回的是一个元组类型
函数自己调用自己,这种方式称为递归
递归函数必须留有出口
递归的最大层级为996
函数的调用实现实质上是利用压栈操作(先进后出)
函数调用时,,在栈中压入栈帧,当函数执行结束,栈帧去除
函数可以进行多次多调用,调用次数没有限制, 递归会导致内存溢出
递归的缺点:消耗内存,效率比较低
优点:逻辑更为直观
给函数传递不可变类型的参数,函数内部修改数据,对函数外部的变量没有影响
结果:
给函数传递可变类型的参数,函数内部修改数据,函数外部的变量也会跟着改变
结果: