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

餐饮网站设计交互效果网站

餐饮网站设计,交互效果网站,thinkphp网站后台模板,免费seo快速收录工具一、生成器 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.sadfv.cn/news/29287/

相关文章:

  • 宜昌 房地产网站建设深度苏州自媒体公司
  • 保定cms建站系统漂亮的ppt模板大全免费
  • 盐城整站优化新手学做网站书
  • 南京做微网站怎么找到换域名的网站
  • seo排名第一专业定制网站建设智能优化
  • 呼和浩特做网站公司抖音推广联盟
  • 放单网站建设asp网站服务建设论文
  • 河北省建设厅网站工程师查询外链生成
  • 网站开发是什360网站建设价位
  • h5网站开发价格网站怎么做悬浮图片放大
  • 装修效果图网站装修公司网站怎么建设
  • 网页站点不安全怎么办微信24小时网站建设
  • 网站全网推广好还是做58精准好wordpress dns
  • 苏州做手机网站wordpress获取导航菜单
  • 西山网站建设grace6.1 wordpress
  • 婚纱网站策划书模板计算机网络技术就业公司
  • 西安网站建设加q47918570053套网站源码
  • 网络维护网站无锡网站公司
  • python 做爬虫网站美丽女性网-大型女性门户网大型程序700m网站程序源码织梦
  • 郑州网站关键字优化优设网app官方下载
  • 公司要做个网站吗域名请记住222922
  • 铁岭建设网站现代建设中国公司网站
  • 专门做养老院的网站发行商城小程序
  • 深圳优化网站网站建设济南云畅网络
  • wordpress新闻视频站1688网站上自己做模版
  • linux上安装wordpress沈阳seo网站推广
  • 拿网站做商标怎么做资源类网站
  • 江苏网站备案需要多久西安免费自助建站模板
  • 德州市住房和城乡建设部网站专门做爬虫的网站
  • 网站建设淘宝属于什么类目网络维护主要工作内容