Python 迭代器+生成器+异常捕获

迭代器 + 生成器 + 异常捕获 结合使用

# __author__ = '19134'


def generator_test(max_num):
    '''
        如果一个函数中用到了yield 关键字,我们应该称其为 生成器
        注意 斐波那契数列
            a, b = b, a+b 等同于 t(元组) = (b, a+b)
            一定要区别于
            a = b
            b = a + b
            的写法
    '''
    a, b, n = 0, 1, 0
    while n < max_num:
        yield b
        # a = b
        # b = a + b
        a, b = b, a+b
        n = n + 1

    # yield b
    # # a = b
    # # b = a + b
    # a, b = b, a+b

    return 'done'



# print(g.__next__())
# print(g.__next__())
print('========中间可以做一些其他事情=========')
# print(g.__next__())
# print(g.__next__())
# print(g.__next__())
# f 就是生成器返回的 迭代器,可以通过next 去迭代列表中的元素
f = generator_test(10)

while True:
    try:
        print(f.__next__())
    except StopIteration as e:
        print("========异常捕获======", e.value)
        break

 

posted @ 2019-11-05 11:11  田园先生  阅读(285)  评论(0)    收藏  举报