当前位置: 首页 > news >正文

甘孜藏族自治州网站建设_网站建设公司_电商网站_seo优化

视频医疗平台网站开发,有帮忙做ppt的网站或人吗,厦门规划建设网站,惠州房产网一、生成器 1. 生成器的定义 把所需要值得计算方法储存起来,不会先直接生成数值,而是等到什么时候使用什么时候生成,每次生成一个,减少计算机占用内存空间2. 生成器的创建方式 第一种只要把一个列表生成式的 [ ] 改成 ( )ret (n 1 for n in range(0,10)) # 返回值是生成了一个… 一、生成器 1. 生成器的定义 把所需要值得计算方法储存起来,不会先直接生成数值,而是等到什么时候使用什么时候生成,每次生成一个,减少计算机占用内存空间2. 生成器的创建方式 第一种只要把一个列表生成式的 [ ] 改成 ( )ret (n 1 for n in range(0,10)) # 返回值是生成了一个生成器对象genexpr储存在16进制的地址中generator object genexpr at 0x7f909f4be150 # 如果调用次数超过生成器内值的总数量,会报错第二种方法使用yield创建生成器 只要在一个函数中存在至少一个yield关键字,该函数就不是普通函数,是一个生成器返回一个对象,需要使用变量接收生成器可以用for进行遍历得到所有的值 # 定义一个斐波那契数列的生成器 def creatnum():print(-----start------)a,b 0,1for i in range(5):print(----1-----)# 每次执行函数都会停在此处,并将b值返回yield bprint(----2-----)a,b b,abprint(----3-----)print(-----stop-----)f creatnum() print(next(f)) print(next(f)) print(next(f)) print(next(f)) print(next(f))打印结果-----start------ ----1----- 1 ----2----- ----3----- ----1----- 1 ----2----- ----3----- ----1----- 2 ----2----- ----3----- ----1----- 3 ----2----- ----3----- ----1----- 5 3. 启动生成器的方法 第一种:next(生成器的名称)第二种:# 生成器第一次调用时尽量不要使用send,非要使用必须用send(None) send()方法二、迭代器 可迭代数据类型(具有可迭代功能) 把可以通过for...in...这类语句迭代读取一条数据供我们使用的对象称之为可迭代对象(Iterable) 例如:列表,元组,字典,集合等数据类型,但他们不是可迭代对象generator(生成器) yield列表生成器生成器都是可迭代对象 如何判断一个对象是不是有可迭代功能 from collections import Iterator # 列表是可迭代的 result isinstance([1,2], Iterable) print(result) # isinstance函数会返回一个bool值 True为可迭代,反之False将具有迭代功能的数据类型转化为可迭代器 可以被next()调用并不断返回下一个值的对象称之为迭代器Iterator 迭代器的判断方式 from collections import Iterator # 列表是可迭代对象 # isinstance函数会返回一个bool值 True为迭代器,反之False result isinstance([1,2], Iterator) print(result) 可迭代对象的本质 我们分析对可迭代对象进行迭代使用的过程发现每迭代一次即在for...in...中每循环一次都会返回对象中的下一条数据一直向后读取数据直到迭代了所有数据后结束。那么在这个过程中就应该有一个“人”去记录每次访问到了第几条数据以便每次迭代都可以返回下一条数据。我们把这个能帮助我们进行数据迭代的“人”称为迭代器(Iterator)。 可迭代对象的本质就是可以向我们提供一个这样的中间“人”即迭代器帮助我们对其进行迭代遍历使用。 可迭代对象通过__iter__方法向我们提供一个迭代器我们在迭代一个可迭代对象的时候实际上就是先获取该对象提供的一个迭代器然后通过这个迭代器来依次获取对象中的每一个数据. 那么也就是说一个具备了__iter__方法的对象就是一个可迭代对象。 from collections import Iterable # 使用isinstance() 函数检测某个对象是否是一个可迭代的对象class MyClass(object):# 可迭代对象的本质是类中是否定义了 __iter__() 方法def __iter__(self):return selfc1 MyClass() # 对象c1不是可迭代对象 result isinstance(c1, Iterable) print(result)举例说明迭代器本质原理 比如数学中有个著名的斐波拉契数列Fibonacci数列中第一个数为0第二个数为1其后的每一个数都可由前两个数相加得到 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ... 现在我们想要通过for...in...循环来遍历迭代斐波那契数列中的前n个数。那么这个斐波那契数列我们就可以用迭代器来实现每次迭代都通过数学计算来生成下一个数。 class Fibonacci():def __init__(self, num):# 通过构造方法保存num到类的成员属性中self.num num# 定义变量保存斐波那契数列前两个值self.a 0self.b 1# 记录当前的变量值self.current_index 0def __iter__(self):# 返回迭代器因自身就是迭代器故可以返回自己return selfdef __next__(self):# 判断是否生成完毕if self.current_index self.num:# 返回result self.a# 交换两个变量值self.a, self.b self.b, self.aself.bself.current_index 1return resultelse:# 停止迭代raise StopIterationif __name__ __main__:# 创建迭代器fib_iterator Fibonacci(5)# 使用迭代器输出斐波那契数列值for value in fib_iterator:print(value, end )   转载于:https://www.cnblogs.com/yanguhung/p/10145767.html
http://www.ihoyoo.com/news/129902.html

相关文章:

  • 保定网站优化排名网站规划与建设是什么
  • 怎么用手机做抖音上最火的表白网站一个交易网站开发的成本是多少
  • 怎么样做兼职网站渭南微网站建设
  • 网站推广seo系统自己做网站表白
  • 金融手机网站开发大理石在哪些网站做宣传
  • 企业网站建设 毕业设计服务器搭建云电脑
  • ace网站建设25亿企业网站管理系统
  • 服装网站建设规划书怎么写徐州关键词排名优化
  • 网站建设维修服务流程WordPress页面添加最新文章
  • 北京网站建设服务中心莱芜金点子最新招聘平台
  • 智联招聘网站怎么做两份简历网站自适应宽度
  • 一个网站做两种产品嘉兴网站制作套餐
  • 中国最大型网站企业门户源码
  • 成都电子商城网站开发网站修改后怎么上传
  • 卫浴网站建设wordpress postline
  • 学网站建设要什么新余门户网站开发
  • 网站首页排版雨人网站建设
  • 做诚信通谁给做网站综合网站开发
  • 系统和网站哪个简单一点php做网站答辩问题
  • 网站建设要求 牛商网什么是h5设计
  • 公司手机版网站制作浅谈你对大学校园网站建设的建议
  • 企业网站seo工作做美食网站的素材图片
  • 网络公司做机场网站做京挑客的网站
  • wordpress全站ssl个人网页设计需求分析
  • 建网站原型图WordPress找不到站点
  • 郑州网站建设及优化宁波pc营销型网站制作
  • 南宁h5建站网站评论列表模板
  • 曲阜市网站建设带紫色箭头做网站软件
  • 重庆网站建设套餐星星影院在线观看
  • wordpress直接上传视频网站吗云浮正规网页设计培训