1.函数
1)函数的好处就是能将固定功能的模块封装起来,在需要多次实现这个功能的时候就调用函数避免代码的重复书写,代码过于冗长
2)传参----依次往后放这是规定 (num, *args, a=2, **kwargs),中间两个交换位置不影响
位置参数
*参数
关键字参数
**参数
3)返回值函数执行没遇到return返回值一定为None,函数在执行过程中遇到return返回值就是return后边的表达式的值
4)全局变量global-----不在函数里就是 局部变量----函数里就是
nonlocal 在局部的局部中去修改局部中的变量
5)函数1 里 还可以调用 函数2…
2.匿名函数
匿名函数的参数变量就是序列里的元素,如果多个参数那就是一个列表
lambda 参数列表:返回值
3.生成器
1)在函数里加上yield而且还必须遇到才算生成器,必须在执行函数的过程中遇到yield,yield后边的就是表达式就是构成迭代器的元素
2)生成式
a.表达式 for _ in 序列
b.表达式 for _ in 序列 if 条件语句
4.迭代器
1)通过iter()转化得到 转化的必须是序列
2)通过生成器获取
next() 、 遍历 获得生成器元素
生成器一定是迭代器
迭代器不一定是生成器