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

Python初学者求助:实现带序号的斐波那契数列输出

问题修正方案

你的代码主要存在两个问题:一是第一个斐波那契数未打印,二是所有输出都缺少序号。既然还没学enumerate,直接用循环里的n就能充当序号,不需要额外嵌套循环。

修正后的代码如下:

pre_previous_fib = 0
previous_fib = 1
num = int(input("How many Fibonacci numbers do you want? "))

for n in range(1, num + 1):
    if n == 1 or n == 2:
        # 斐波那契数列前两个数固定为1
        current_fib = 1
    else:
        current_fib = pre_previous_fib + previous_fib
        pre_previous_fib = previous_fib
        previous_fib = current_fib
    # 利用循环变量n作为序号,按要求格式打印
    print(f"{n}. {current_fib}")

代码说明:

  • 合并前两个数的判断逻辑,直接赋值为1,贴合斐波那契数列的常规起始规则
  • 每个循环都执行打印操作,确保所有数字都输出,且带上对应序号n
  • 调整变量名为current_fib,比原new_fib更直观,便于理解逻辑

测试输入7时,输出将完全符合你的要求:

How many Fibonacci numbers do you want? 7

  1. 1
  2. 1
  3. 2
  4. 3
  5. 5
  6. 8
  7. 13

另外你之前尝试用另一个循环遍历new_fib报错,是因为new_fib是单个数值,并非列表、元组这类可迭代对象,循环只能遍历可迭代集合,所以会触发“不可迭代”的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 21:24:26