生成器实现斐波那契数列

“”“生成器实现斐波那契数列”""
#著名的斐波拉契数列(Fibonacci),除第一个和第二个数外,任意一个数都可由前两个数相加得到:

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

#斐波拉契数列用列表生成式写不出来,但是,用函数把它打印出来却很容

def fbnq(num):
    a=0
    b=1
    current_index=0  #当前下标
    while current_index<num:
        result= a
        a,b =b,a+b
        current_index+=1

#程序遇到yield返回值之后会暂停,下次执行时会从这里开始,当后面遇到return时会立即结束迭代

    yield result  #一个函数中出现yield,则说明该函数是生成器
    # return "haha"
if __name__ == '__main__':
    ret=fbnq(3)
    
    while True:
        try:
            ret1=next(ret)
            print(ret1)
        except StopIteration as e:
            print(e.value)


    #
    # print(next(ret))
    # print(next(ret))
    # print(next(ret))
    #溢出报错
    # print(next(ret))
    # for i in ret:
    #     print(i)

猜你喜欢

转载自blog.csdn.net/qq_44090577/article/details/89377639