迭代器,生成器,面向过程 2018-3-30

迭代器

迭代器:是一个重复的过程,并且重复都是基于上一次结果得到的,迭代取值的工具

可迭代对象:但凡内置有__iter__方法的对象,都是可迭代对象

可迭代对象有:list,tuple,dict,set ,文件等

迭代对象,res__next__,执行可拿到迭代对象中的一个值

__iter__,执行可拿到迭代器本身

有点:1,提供一种不依赖索引取值的方式         2,迭代器更加节省内存

缺点:1,驱逐麻烦,一个一个的取          2,取值一次性,只能往后取,无法用len获取长度

文件本生就是迭代器对象

for循环称之为迭代器循环,in后方的是可迭代对象

生成器:

总结yield:1,提供一种自定义迭代器的方法,可以在函数内用yield关键字,调用函数拿到的结果就是一个生成器,

即迭代器

2,yield,可以想return一样用于返回值,但是,yield可以返回多次值

yield 可以保存函数的执行的状态

面向过程编程:面向编程的过程的编程,只要是过程

优点:复杂问题流程化,进而简单化

缺点:扩展性极差,修改一个阶段后面其他阶段都可能做修改

应用:扩展性要求极低

原文地址:https://www.cnblogs.com/tianyu529/p/8678404.html

时间: 2024-10-21 04:51:47

迭代器,生成器,面向过程 2018-3-30的相关文章

python学习第四节 迭代器 生成器 面向过程编程

1:什么是迭代 可以直接作用于for循环的对象统称为可迭代对象(Iterable). 可以被next()函数调用并不断返回下一个值的对象称为迭代器(Iterator). 所有的Iterable均可以通过内置函数iter()来转变为Iterator. 对迭代器来讲,有一个__next()就够了.在你使用for 和 in 语句时,程序就会自动调用即将被处理的对象的迭代器对象,然后使用它的next__()方法,直到监测到一个StopIteration异常. >>> L = [1,2,3]>

python基础(4):迭代器、生成器、面向过程编程

迭代器 生成器 面向对线编程 一 迭代器 #1.为何要有迭代器? 对于序列类型:字符串.列表.元组,我们可以使用索引的方式迭代取出其包含的元素.但对于字典.集合.文件等类型是没有索引的,若还想取出其内部包含的元素,则必须找出一种不依赖于索引的迭代方式,这就是迭代器 #2.什么是可迭代对象? 可迭代对象指的是内置有__iter__方法的对象,即obj.__iter__,如下 'hello'.__iter__ (1,2,3).__iter__ [1,2,3].__iter__ {'a':1}.__i

迭代器、生成器、面向过程编程

一 迭代器 1.迭代的概念 #迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 while True: #只是单纯地重复,因而不是迭代 print('===>') l=[1,2,3] count=0 while count < len(l): #迭代 print(l[count]) count+=1 2.为何要有迭代器?什么是可迭代对象?什么是迭代器对象? #1.为何要有迭代器? 对于序列类型:字符串.列表.元组,我们可以使用索引的方式迭代取出其包含的元素.但

迭代器和生成器,面向过程编程

迭代器 迭代的工具,迭代是一个重复的过程,并且每次重复都是基于上一次结果而来 什么是可迭代的对象和迭代器对象? 在python中,但凡内置有__iter__方法的对象,都是可迭代对象 可迭代对象执行__iter__方法的到的返回值就是迭代器对象 l='hello' iter_l=l_iter_() while True:        try:            print(iter_l._next_())        except StopIteration:            br

迭代器、生成器、面向过程

目录: 一.装饰器 二.迭代器 三.生成器 四.面向过程 一.装饰器  1.装饰器简介:  软件一旦上线后,就应该遵循开放封闭原则,即对修改源代码是 封闭的,对功能的扩展是开放的也就是说我们必须找到一种解决 方案能够解决在不修改一个功能源代码以及调用方式的前提下, 为其加上新功能,而装饰器正好可以解决这个问题 2.装饰器是什么: 装饰器就是为被装饰对象添加功能的工具 3.定义:  装饰即在不修改被装饰对象源代码与调用方式的前提下,为被装 饰器对象添加功能,装饰器与被装饰对象均可以使任意调用的对

生成器、三元运算符、面向过程

生成器: 函数内部有 yield 关键字,该函数执行的结果就是生成器函数,yield后跟返回值,不跟是None 生成器本质就是迭代器 def foo(): print('start') yield   # yield  ok     #可跟返回值 print('end') g=foo()          # g 就是生成器 res=g.__next__()    #  next 执行一次   如上代码: 函数碰到return结束,这里的yield相当于return,后面没有跟返回值,返回Non

13t天 迭代器,生成器,内置函数

上周复习: 函数的递归调用 函数调用时函数嵌套调用的一种特殊形式 函数在调用时,直接或间接调用了自身,就是梯归调用. 直接调用自身 def f1():   print('from f1')   f1()f1() 间接调用函数 def f1():   print('from f1')   f2()?def f2():   print('from f2')   f1()f1() 梯归 递归应该分为两个明确的阶段,回溯与递推. 回溯就是从外向里一层一层递归调用下去,回溯阶段必须要有一个明确地结束条件,

Day4 - 迭代器&amp;生成器、装饰器、Json &amp; pickle 数据序列化、软件目录结构规范

---恢复内容开始--- 本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 需求:列表a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求把列表里的每个值加1 1 a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 2 b = [] 3 for i in a: 4 b.append(i+1) 5 a = b 6 print(a) 普通青

10.迭代器/生成器/协程函数/列表生成器

迭代器为什么要用迭代器?小结:生成器为什么要使用生成器,什么是生成器?如何创建一个生成器举个栗子:斐波拉契数列用yield返回结果的执行流程作业代码以及注释:协程函数面向过程编程作业以及代码注解:典型范例以及代码解析:列表生成式生成器表达式作业和练习 迭代器 为什么要用迭代器? 提供了一种不依赖索引的取值方式,使一些不具有索引属性的对象也能遍历输出 相比列表,迭代器的惰性计算更加节约内存. 但是它无法有针对性地指定取某个值,并且只能向后取值. >>> from collections i