1.recode
1.函数的定义:函数就是实现某一特定功能的代码段的封装
2.函数的声明:
def 函数名(形参列表):
函数体
注意:
1.python中的函数不支持函数的重载(名字相同的函数只能有一个)
2.声明函数的时候,函数体不会执行
3.函数的调用
函数名(实参列表)
(重点!!)调用过程:
1)回到函数声明的位置
2)传参
3)执行函数体
4)执行完函数体,确定返回值
怎么确定返回值:看执行完函数有没有遇到return,如果遇到return后面的值就是返回值
5)回到调用函数的位置,执行后面的代码。(这个时候函数调用表达式的值,就是返回值)
4.函数的参数
1)位置参数和关键字参数(位置参数要在关键字前)
2)参数默认值(没有默认值的参数要放在前面)
3)函数中参数和返回值类型说明
4)不定长参数
*参数名, **参数名
5.返回值
1)怎么确定返回值:看return
2)怎么获取返回值:使用函数调用表达式
序列前面加“*”就是将这个序列展开。
2.匿名函数:匿名函数就是没有名字的函数
1)
lambda 参数列表:返回值
2)说明
lambda --- 关键字
参数列表 --- 相当于普通函数的形参列表.(变量1,变量2,.....) 至少要有一个
: --- 固定写法
返回值 --- 相当于普通函数中的return;可以是除了赋值语句以外的所有表达式,
只能是一条语句(不能是赋值语句)
注意:
1.匿名函数本质还是函数,之前函数中的语法绝大多数都适用。(除了类型名对参数类型进行说明不支持)
2.匿名函数能做的事情,普通函数都可以。只是匿名函数简洁。
'''
3.变量的作用域:指的就是变量的使用范围
4.全局变量、局部变量
1)全局变量:没有声明在函数/类中的变量都是全局变量,
全局变量的作用域是从变量声明开始到整个py程序结束。
2)局部变量:声明在函数中的变量都是局部变量,
局部变量的作用域就是从变量声明到函数结束。
注意:形参也是局部变量。
当在调用函数的时候,系统会自动的在内存的栈区间为这个函数开辟一个独立的内存区域,用来保存在函数中声明的变量或者产生的数据。当函数调用结束后,这个内存区域会自动销毁。
3)两个关键字:global和nonlocal
函数内,在变量前加global,就将局部变量变成全局变量。
(1)global --- 在函数内声明一个全局变量(在函数中使用)
global 变量名
变量名 = 值
(2)nonlocal ---想要在局部的局部中取修改一个局部的值,就使用nonlocal
def func5():
# global x2
x2 = 100
def f():
nonlocal x2
x2 = 50
print(x2)
f()
print(x2)
网友评论