为什么我写的Python斐波那契数列算法无法按预期正常运行?
问题排查与修正方案
- 第一个问题是语法缩进错误:原代码中
return sequence没有缩进至函数内部,属于全局作用域的代码,运行时会直接抛出语法错误,无法正常执行。修正方式是将这行缩进4个空格,和函数内的其他代码对齐。 - 第二个问题是输出范围不匹配:你当前的代码直接打印完整的斐波那契数列列表,没有截取第5到15位的部分。由于你约定第5位的值为3,对应Python列表的索引为4(列表从0开始计数),第15位对应索引为14,因此需要对生成的列表做切片处理。
修正后的完整代码
def fibonacci_nums(n): if n <= 0: return [0] sequence = [0, 1] while len(sequence) <= n: next_value = sequence[len(sequence) - 1] + sequence[len(sequence) - 2] sequence.append(next_value) return sequence # 生成到第15位对应的序列,切片取第5到15位 fib_list = fibonacci_nums(15) print("第5位到第15位的斐波那契数:") print(fib_list[4:15])
运行结果
第5位到第15位的斐波那契数: [3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377]
内容的提问来源于stack exchange,提问作者Jellyfish
相关产品推荐
相关产品推荐

