函数进阶之迭代器,递归

Posted shiqizz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数进阶之迭代器,递归相关的知识,希望对你有一定的参考价值。

迭代器

可迭代的对象:具有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()

面向过程变成

流水线

优点:思路清晰

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

以上是关于函数进阶之迭代器,递归的主要内容,如果未能解决你的问题,请参考以下文章

函数进阶之生成器和迭代器

python函数装饰器迭代器生成器

Python之迭代器生成器装饰器和递归

3-22函数进阶——迭代器

第五篇Python之迭代器与生成器

递归,三目运算,匿名函数,迭代器