如何基于斐波那契序列生成函数创建列表?
修复斐波那契序列列表生成函数
原代码存在的问题:
fib函数仅打印斐波那契数,未返回数值集合,导致无法将结果存入列表fib_list参数定义错误,不能在参数位置直接调用函数,需定义常规参数(如n)for i == n是无效语法,循环结构写法不符合Python规范- 使用内置类型名
list作为变量名,会覆盖Python内置的list类型,不建议这么做
修正后的实现方案:
我们可以先改造fib函数让它返回斐波那契序列的列表,再通过fib_list调用并输出结果:
def fib(n): if n < 1: return [] fib_sequence = [0] if n == 1: return fib_sequence fib_sequence.append(1) a, b = 0, 1 for _ in range(2, n): c = a + b a = b b = c fib_sequence.append(c) return fib_sequence def fib_list(n): sequence = fib(n) if not sequence: print("请选择大于等于1的数字") else: print(sequence) return sequence
或者直接编写独立的fib_list函数,一步完成序列生成与输出:
def fib_list(n): if n < 1: print("请选择大于等于1的数字") return [] fib_sequence = [0] if n == 1: print(fib_sequence) return fib_sequence fib_sequence.append(1) a, b = 0, 1 for _ in range(2, n): c = a + b a = b b = c fib_sequence.append(c) print(fib_sequence) return fib_sequence
使用示例:
调用fib_list(6)会输出:[0, 1, 1, 2, 3, 5]
内容的提问来源于stack exchange,提问作者gusifer98
相关产品推荐
相关产品推荐

