斐波那契数列(生成器版)

# 生成器:函数中如果出现yield,那么函数的返回值就是一个生成器;


def fibonacci(num):
    # 定义变量
    index = 0
    n1 = 1
    n2 = 1
    # 循环获取下一项元素
    while index < num:
        # 索引值自增
        index += 1
        value = n1
        # 把两个变量推向下一项
        n1, n2 = n2, n1 + n2
        # 出现yield,那么调用这个函数就会获取一个生成器;
        # return: 只能返回一次,程序就停止了,而yield可以返回多次;(阻塞)
        # yield: 可以返回一个值,然后停止,然后在通过next()调用再返回...
        yield value

# 生成器
generator = fibonacci(12)
# print(next(generator))
# print(next(generator))
# print(next(generator))


for i in generator:
    print(i, end=" ")  # 输出结果:1 1 2 3 5 8 13 21 34 55 89 144

你可能感兴趣的:(python开发)