函数:
函数的定义:
将一件事情的步骤封装在一起并得到最终结果
函数名代表了这个函数要做的事情
函数体是实现函数功能的流程
函数可以帮助我们重复使用,通过函数名我们可以知道函数的作用
函数的分类:
内置函数:Python中自带的函数
自定义函数:自己写的
函数的创建:
使用关键字def
def name(args):
xxxxxxxxxx
返回值
函数的返回return:
将函数结果返回的关键字
return只有在函数体内才能使用
return支持返回所有的Python类型
有返回值的函数可以直接赋值给一个变量
return代表了函数的结束,其下的代码不会运行
def add(a,b):
c = a+b
return c
result = add(a = 1, b = 1)--> result = 2
函数的传参:
必传参数:
在定义函数的时候,没有默认值且必须在函数执行的时候传递进去的参数,且顺序与参数顺序相同,就是必传参数
函数中定义的参数没有默认值,在调用函数是如果不传入则报错
在定义函数的时候,参数后面没有等号与默认值
def add(a,b):
默认参数:
在定义函数的时候,定义的参数含有默认值,通过赋值语句给它一个默认的值
def add(b=2):
在使用函数时,b仍可以传入值,并且传入的值优先使用
不确定参数----可变参数:
没有固定的参数名和数量(不知道要传的参数名具体是什么)
def add(*args, **kwargs):
add(1,2,3,name='aaa',age=22)
*args代表将无参数的值合并成为元组
**kwargs代表将有参数与默认值的赋值语句合并成字典
参数规则:
参数的定义从左到右依次是必传参数、默认参数、可变元组参数、可变字典参数
def add(a,b=1,*args, **kwargs):
函数参数类型定义:
def add(name:str, age:int=22):
函数不会对参数类型进行验证,只是肉眼上的验证
全局变量:
在Python脚本最上层代码块的变量,全局变量可以在函数内被读取使用但无法修改
局部变量:
在函数体内定义的变量,无法在函数以外使用
global函数:
a=1
def b():
global a
a=2
使用global+全局变量名,可以在函数体内对全局变量重新赋值
字典、列表可以直接在函数体内使用更改
递归函数:
一个函数不停将自己反复执行
def test(a):
print(a)
return test(a)
注意不要无限执行,电脑会炸
lambda函数:
定义一个轻量化的函数,即用即删除,适合需要完成一项功能,但此功能只在此一处使用
无参数
f=lambda:value(这个value起到return的效果)
f()
有参数
f=lambda x,y:x*y
f(3,4)