函数
1.函数顺序:定义函数---->调用函数---->函数体
2.函数返回值:return 返回值单个是本身,多个为元组;
没有return返回None;
有return没写返回内容也返回None;
return以下的程序不执行;
返回值返回给调用者,即调用函数名+().
ps:三元运算:a if a>b else b
3.参数
形参: def func(形参):
函数体
f unc(实参)
传参:实参传递给形参的过程
参数级别: 位置参数>动态位置参数>默认(关键字)参数>动态默认(关键字)参数
位置参数:从左到右 一 一 对应。
默认参数
函数执行过程:1定义函数
2开辟内存空间
3.调用函数
4.运行函数体
5.销毁函数开辟的内存空间
动态位置参数:*args 默认约定写法,可变 * +其他字符 代表;
一个元素为元素本身,多个元素则默认元组
动态默认参数:**kwargs 默认约定写法,可变 ** +其他字符 代表;
默认字典
在形参位置 * 表示聚合
在实参位置 * 表示打散,在函数体中 * 将可迭代的元素打散;
在函数调用的时候,* 将字典打散,将键取出;
在函数调用的时候,** 将字典打散成关键字参数以键和值的形式;
4.作用域
名称空间:加载顺序:内置空间--->全局空间--->局部空间
取值顺序:局部空间--->全局空间---->内置空间
内置空间:python内置空间中的所有代码
全局空间:写的PY文件
局部空间:函数中的代码
作用域:1.全局作用域:内置空间+全局空间
2.局部作用域:局部空间(函数内的就是局部作用域)
global 在局部修改全局变量,找到则修改,没有则生成
nonlocal 在局部修改离其最近的局部变量,向上一级一级寻找最近的第一个,直到局部空间最后一层,找到第一个则修改,没有则会报错(函数外全局变量不算不修改)
函数嵌套
例:
def func():
print(a)
def inn():
print(b)
inn()
return c
print(func())
1.def func():声明函数func()
2.print(fun()) 调用函数,进入func()的函数体
3.print(a) 打印a
4def inn(): .声明函数inn()
5.inn() 调用函数,进入inn()函数体
6.print(b) 打印b
7.inn()函数的返回值返回 None 到inn()
8.return c func()函数返回值c返回到fun()
9.print(func()) 打印c
结束
ps:查看注释 函数名.__doc__
查看名字 函数名.__doc__
浙公网安备 33010602011771号