python基于迭代器的斐波那契数列生成器

迭代和斐波那契数列

def fbn(a  ,b ):
    while 1:
        a,b = b,a+b
        yield b
        
def come(a = 1,b = 1,num = 10):
    c = iter(fbn(a,b))
    d = 0
    if num >= 0:
        if num == 1:
            print(a)
        if num == 2:
            print(a,b,sep = ',')
        if num > 2:
            print(a,b,sep = ',',end=',')
            for i in range(num-2):
                d += 1
                print(next(c),end=',')
    else:
        print("\n**输入不能为负数**\n")

            
    
    print("初始数据为:{},{}\n一共完成{}次迭代\n".format(a,b,d))

if __name__ == '__main__':
    while 1:
        try:
            num = int(eval(input("斐波那契数个数:")))
            
            come(num = num)
        except Exception as e:
            print("\n**输入格式错误-----输入只能是正整数**\n\n具体:{}".format(e))
    print("退出函数!")
        

在这里插入图片描述

发布了29 篇原创文章 · 获赞 129 · 访问量 8720

猜你喜欢

转载自blog.csdn.net/weixin_44072077/article/details/101201220