美文网首页
2018-07-29

2018-07-29

作者: 淡水t海边 | 来源:发表于2018-07-30 09:47 被阅读0次

斐波拉契数列:

def fib(max):

    n, a, b = 0, 0, 1

    while n < max:

        print(b)

        a, b = b, a + b

        n = n + 1

    return 'done'


把fib改为generator函数,只需要把print(b)改为yield b就可以了

def fib(max):

    n, a, b = 0, 0, 1

    while n < max:

        yield b

        a, b = b, a + b

        n = n + 1

    return 'done'


如何捕获生成器中的generator的终止return值;

必须捕获StopIteration错误,返回值包含在StopIteration的value中:

g = fib(6)

>>> while True:

...    try:

...        x = next(g)

...        print('g:', x)

...    except StopIteration as e:

...        print('Generator return value:', e.value)

...        break

...

g: 1

g: 1

g: 2

g: 3

g: 5

g: 8

Generator return value: done

相关文章

  • Linux File System Explanation

    Linux File System Explanation UpDate 2018-07-29 153286211...

  • rabbitmq报Heartbeat missing with

    2018-07-29 10:20:15.018 ERROR [rabbitmq-nio] c.r.c.impl.F...

  • 2018-08-15

    不断复习你的梦想 Jamie焦关注2018-07-29 00:51 · 字数 58 · 阅读 76 · Jami...

  • 原谅0729

    2018-07-29 《原 谅 》 -----献给天下的父母 董进宇 . 孩子 . 原谅我把你带到了这个...

  • 关于87-88节《时间管理100讲》听后笔记

    2018-07-29 一、既能录音又能手写的软件----Notability(手写) 建议在iPad上使用这款工具...

  • 2018-07-29

    10组~96~郭洁~读《如何阅读》体会 郭洁_2160 2018-07-29 07:58 · 字数 598 · 阅...

  • 云淡风轻

    云淡风轻。 故事or 2018-07-29 22:41 · 字数 290 · 阅读 0 · 日记本 一睁眼,看...

  • Maven + SpringBoot + Mybatis + M

    2018-07-29 注:首先,需要你已经安装了Mysql,并且创建User表 安装 MySQL 1. Windo...

  • 思源园记

    陈老牛A 2018-07-29 10:32·字数 1086·阅读 3·日记本 陈振民 图片发自简书App ...

  • 人间是道场,淤泥皆莲花

    人间是道场,淤泥皆莲花 人间是道场,淤泥皆莲花 小石侠 2018-07-29 20:10 · 字数 1094 · ...

网友评论

      本文标题:2018-07-29

      本文链接:https://www.haomeiwen.com/subject/ngwtvftx.html