博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python高级编程 读书笔记: 5、 第3章_生成器
阅读量:3663 次
发布时间:2019-05-21

本文共 998 字,大约阅读时间需要 3 分钟。

# -*- encoding: utf-8 -*-import time'''5、 第3章_生成器关键:1 生成器本质: 是一个函数,按照顺序返回值,执行直到被通知输出一个值,然后继续执行直到再次被通知输出值特点: 允许输入序列中的每个值在需要时才计算作用: 节省内存特征: 函数内部有yield语句, yield语句不会终止函数的执行,执行会暂时停止直到调用代码重新恢复生成器2 next函数作用: 能够让生成器(任何带有__next__方法的对象都称为next)请求它的下一个值迭代终止的方式: python2中使用raise StopIteration(42) 等同于python 3中使用return 42 参考:Python高级编程'''def fibonacci():    numbers = []    while True:        if len(numbers) < 2:            numbers.append(1)        else:            '''            关键: 这里加入前面两个元素的累加和,然后删除最老的数据,则数组中一直保留两个元素            '''            numbers.append(sum(numbers))            numbers.pop(0)        yield numbers[-1]        time.sleep(1)def validFibonacci():    for value in fibonacci():        print valuedef useNext():    gen = fibonacci()    while True:        try:            result = next(gen)            print result        except StopIteration:            print "StopIteration exception"            breakdef process():    # validFibonacci()    useNext()if __name__ == "__main__":    process()

 

转载地址:http://jvlfn.baihongyu.com/

你可能感兴趣的文章
Lua中的元表元方法
查看>>
第九章 质量与变更管理
查看>>
Rabbitmq高级特性及集群
查看>>
RocketMq入门
查看>>
RocketMQ高级原理详解
查看>>
RocketMQ应用
查看>>
kafka搭建与使用
查看>>
docke学习内容之二
查看>>
SpringDataJpa学习一
查看>>
springboot中的日志框架
查看>>
springboot的MVC自动配置
查看>>
Springboot中对mvc进行扩展
查看>>
一文读懂HashMap
查看>>
ConcurrentModifcationException详解
查看>>
史上最全的PHP正则表达式
查看>>
理解Mysql prepare预处理语句
查看>>
预编译语句(Prepared Statements)介绍,以MySQL为例
查看>>
单利模式
查看>>
gdal学习笔记1-读取数据信息
查看>>
python关于print中数据传输的用法
查看>>