You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python编写斐波那契序列自动化程序运行出错,求错误排查

代码问题梳理
  • list.append() 方法是原地修改列表,本身没有返回值,你直接返回lst.append(...)的执行结果,打印输出只会得到None,无法拿到修改后的斐波那契列表。
  • 循环内第一行就写了return语句,循环只会执行1次就直接退出函数,完全无法重复生成后续的斐波那契数。
  • 你没有在循环内修改全局变量length的值,length初始值为6永远小于等于stop的10,就算删掉return语句也会陷入死循环。另外如果是要按列表长度控制生成次数,应该直接判断传入列表的len(lst),全局length变量不会跟着列表长度动态变化。
  • 逻辑流程错误:应该先循环完成所有斐波那契数的追加操作,再返回最终列表,不能在循环内提前返回。

修正后可运行代码
stop = 10

def append_sum(lst):
    # 直接用列表当前长度作为判断阈值,不需要额外全局变量控制
    while len(lst) <= stop:
        lst.append(lst[-1] + lst[-2])
    # 所有元素追加完成后再返回列表
    return lst

print(append_sum([1, 1, 2]))

运行后输出结果为:[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

如果你的需求是生成数值不超过stop的斐波那契序列,把循环条件改为while lst[-1] <= stop即可。


内容的提问来源于stack exchange,提问作者slightlyconfused

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 04:54:05