曦玥槐花晨 2023-04-07 09:30 采纳率: 100%
浏览 26
已结题

python生成器实现斐波那契数列

img

以上是生成斐波那契数列的代码,问最后一行是什么意思
并解释一下代码

  • 写回答

3条回答 默认 最新

  • a5156520 2023-04-07 09:43
    关注

    最后一行的意思是,把back2的值赋值给back1, 再把back1+back2的和赋值给back2。

    fib()函数是一个生成器函数,它的作用是,当每次调用next()方法,就可以返回这个函数计算出的当前项的斐波那契数列的值。

    测试代码如下:

    参考链接:



    
    def fib():  # 生成器函数,用于返回当前项斐波那契数列的值
        #  https://www.codenong.com/41615756/
        back1, back2 = 0,1 # back1赋值第一个值0,back2赋值为第二个值1
        while True:
            
            yield back1  # 返回back1的值,但是函数不会退出,等待下一次调用next()方法
            #  下面的作用相当于,把back2的值赋值给back1, back1+back2的和赋值给back2
            #  back1  back2  back1+back2
            #     1     1      2
            # print("before: back1=",back1,",back2=",back2)
            back1,back2 = back2,back1+back2
            # print("after: back1=",back1,",back2=",back2)
            
    
    fibNum = fib()
    for i in range(0,11):
        
        # https://blog.csdn.net/weixin_44992737/article/details/125860953
        # https://qb.zuoyebang.com/xfe-question/question/b1565033a69fae0837095a71193fcdee.html
        # 调用next()方法来获取一项斐波那契数列的值
        print("斐波那契数列第"+str(i)+"项为:"+str(next(fibNum)))
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月15日
  • 已采纳回答 4月7日
  • 创建了问题 4月7日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么