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

Python编写斐波那契序列生成代码后如何获取最后一项及其对应序号

斐波那契序列目标值提取实现方案

问题核心

你当前的代码已经生成了符合要求的完整斐波那契序列,只需要在循环结束后提取列表的末尾元素和列表长度,即可拼接得到目标输出。

优化后完整代码

def fibonacci(input_number):
    a = 0
    b = 1
    fibo = [a, b]
    while b < input_number:
        a, b = b, a + b
        fibo.append(b)
        # 保留原有的每步打印逻辑,不需要可以直接删除
        print(fibo)
    # 提取目标数据
    last_num = fibo[-1]
    order = len(fibo)
    # 拼接输出目标语句
    print(f"The last fibonacci number is {last_num} and it is the {order}th fibonacci number")

# 调用测试,输入值设为10
fibonacci(10)

如果你需要适配1/2/3对应的st/nd/rd序数后缀规则,可以将输出部分替换为以下逻辑:

# 序数后缀适配逻辑
if order == 1:
    suffix = "st"
elif order == 2:
    suffix = "nd"
elif order == 3:
    suffix = "rd"
else:
    suffix = "th"
print(f"The last fibonacci number is {last_num} and it is the {order}{suffix} fibonacci number")

运行输出

[0, 1, 1]
[0, 1, 1, 2]
[0, 1, 1, 2, 3]
[0, 1, 1, 2, 3, 5]
[0, 1, 1, 2, 3, 5, 8]
[0, 1, 1, 2, 3, 5, 8, 13]
The last fibonacci number is 13 and it is the 8th fibonacci number

逻辑说明

  • 循环终止时,fibo列表已经是满足fibo[-2] < input_number < fibo[-1]的完整序列
  • fibo[-1]直接取列表最后一位,就是大于输入值的最小斐波那契数
  • len(fibo)取列表长度,和你需求的序号计数规则完全匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:18:04