生成器generator

定义:一边循环一边计算的机制。

列表元素可以按某种算法推算出来,在循环的过程中不断推算出后续的元素。

1.创建一个generator的办法

①列表生成式的【】改为()


要想打印出generator的每一个元素------用next()函数。


generator保存的是算法。next(g)没有更多元素时,抛出StopIteration的错误。

改进next():更简洁的方法-------for循环。


2.目标:斐波拉契数列(Fibonacci):除第1,2个数,任何1个数由前2个数相加得到:

1,1,2,3,5,8,13,21,34,...

法1:定义斐波拉契函数(print(b))


注:若第5行代码用了Tab缩进会报错。打两个空格就好。

调用


法2:生成器 print(b)改为yield b

   注:定义generator的另一种方法:

函数定义中包含yield关键字,该函数就不是一个普通函数,而是生成器。

调用

       

           


3.说明yield的中断属性及驾驭策略


注:odd是生成器,遇到yield就中断,下次又从上次返回的yield语句处继续执行。实际中,大多用for迭代而不用next()。



for迭代生成器的局限性:拿不到生成器的return语句的返回值,譬如:


改进:


Python编码中try语法是用来捕获由Python或程序本身引发的异常,如果不想在异常发生时结束程序,只需在try里捕获它,

//当程序运行是会捕获一个错误并执行except后面的代码。


     

yield L的顺序也很重要,当yield L位于循环末尾时,会出错。应位于循环内部的最前端。


毕业论文致谢 非毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本常实用的版本 毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本毕业论文致谢 非常实用的版本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值