函数基础
1.函数要求: 是标识符;不是关键字
**2.三个规范:******见名知意;*字母都小写,单词间用下划线隔开;不使用系统函数名,类名,模块名
3.形参作用:将函数外部数据传递到函数内部的通道
4.实参:通过形参从函数外部传递到函数内部的数据
5.函数说明文档(函数下面函数体之前): 多行注释
# 语法:
def 函数名(形参列表):
"""函数说明文档"""
函数体
# 调用:
函数名(实参)
参数:位置参数,关键字参数,可变长参数(*args;**kwargs)
参数默认值(形参):有默认值的参数必须在没有默认值的后面
def fun(x,y,z=30):
print(f'x:{x},y:{y},z:{z}')
# 位置参数:
fun(10,20,30)
# 关键字参数:
fun(y=20,x=10,z=30)
# 位置参数和关键字参数一起用,但------位置参数必须在关键字参数之前-----
fun(10,y=20,z=30)
def fun1(a,*b,*,c):
print(f'a:{a},b:{b},c:{c}')
# 位置不定长参数*args:(元组)'*'前传位置参数,中间传0个或多个位置实参,‘*’后传关键字参数
fun(10,20,30,40,50,c=60) # 第一个实参会默认传给a,但最后一个参数必须传关键字参数才能识别
def fun2(**x):
pass
# 关键字不定长参数**kwargs: (字典)传0个或多个关键字参数
fun2()
fun2(name='xxxx',age=22)
**参数类型说明:**定义函数时指定参数类型
(1) 没有默认值参数 形参名后面加 ‘:类型名’
(2)有默认值参数 默认值对应的数据类型就是参数的类型
def func3(x: str, y: int, z: list, t='', m: int = 10):
pass
返回值
1.返回值就是函数内部传递到函数外的数据
2.函数体没有return,返回值为none
3.遇到return就会直接结束函数
作用域
1.函数体内定义----局部变量,函数或类外—全局变量
2.全局变量作用于全局,局部只能用于其定义的函数体内
3.全局变量保存在全局栈区间,局部变量保存在调用函数时函数的临时栈空间,函数调用结束局部变量及存的数据的栈区间会自动释放掉,只有函数调用时能使用
global修改局部变量的保存方式,让其变成全局变量