函数进阶之迭代器,递归

迭代器

可迭代的对象:具有iter方法的对象,可迭代对象不一定是迭代器对象

迭代器对象:具有iter和next方法的对象,迭代器对象一定是可迭代对象,迭代器对象加上iter方法还是迭代器本身

for 循环原理

for i in lt:

  1. 把lt变成迭代器对象

  2. 然后迭代使用next方法获取每一个元素

  3. 捕捉异常中断while循环

三元表达式

print(1) if i > 10 else print(2)

列表推导式

​ [i for i in range(10)] #0-9已经拿出来了

字典生成式

{k:v for k,v in dic.items()}

生成器表达式

(i for i in rang(10)) #不去使用next取值,是没有值的

生成器

自定制的迭代器

def func():

​ yield

yield:

1.展厅函数,遇到下一个yield继续运行函数代码

2.具有返回值

3.让函数()变成生成器对象

return:

1.终止函数

2.返回值

匿名函数

没有名字的函数 lambda参数:代码块

一般不单独使用,与max/min/map/filter/sorted联用

递归

函数调用函数本身,但是必须得有结束条件

内置函数

内置函数的直接用的,属于Python解释器的

数据类型的内置函数只有数据类型本身才能使用

enumerate()

面向过程变成

流水线

优点:思路清晰

缺点:可扩展性差;功能与功能直接不独立;调试麻烦

posted on 2019-09-12 20:33  十七zz  阅读(132)  评论(0编辑  收藏  举报