1、为什么要是用函数
函数就是对代码的封装,提高了代码的复用性
2、函数的定义
函数的定义用关键字def:
def 函数名():
函数功能代码
pass
3、函数的调用
用函数名直接调用也可以将函数作为
4、函数的返回值
5、函数参数(普通参数、默认参数、关键字参数、动态收集参数)
关键字参数:用在函数调用,关键字参数调用的函数参数的顺序更加灵活
动态收集参数:函数定义是不知道要传递多少个参数(*args, **kwargs),一个星是元组,两个星是字典
收集参数放dict,传递定义好的字典
6、匿名函数
匿名函数:没有定义名字的函数,没有标识符,仅仅只用一次
定义:
print((lambda x,y: x+y)(4,5))
函数对象可以当作参数传递:
lambda表达式返回函数对象
def fun(param):
pass
fun(lambda x, y: x + y, 8, 9)
7、其他
!isinstance内置函数,第一个参数是否是第二个参数同种类型
!raise异常处理(自己输出)
! abs 取绝对值
!round 四舍五入
def fun(num):
if not isinstance(num, (int, float)):
raise TypeError("参数类型不对")
if isinstance(num, float):
return abs(round(num))
! nonlocal关键字,从内层拿到外层变量的引用
def out_fun(): # 最外层
call_count = 0
def in_fun(): # 内层函数
nonlocal call_count
call_count = call_count + 1 print(call_count)
return in_fun
out_fun()()