Python新手求助:用def函数生成前10项斐波那契数列未得预期输出
解决斐波那契数列前10项输出问题
你的代码逻辑本身没问题,但可能是以下几个原因导致不符合预期:
1. 未正确传入参数n=10
你的函数需要传入参数n来指定生成的项数,如果调用时没传n=10,比如直接写fibonacci_with_loop(),会触发参数缺失错误;如果传了其他数值,自然得不到前10项。
修正方式:调用函数时明确传入10:
fibonacci_with_loop(10)
2. 预期数列以1开头而非0
很多人对斐波那契数列的认知是从[1,1,2,3,...]开始,而你的代码初始列表是[0,1],生成的结果会是[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]。如果这是不符合预期的原因,调整初始列表即可:
def fibonacci_with_loop(n): # 初始化为以1开头的前两项 fib_series = [1, 1] for i in range(2, n): next_number = fib_series[-1] + fib_series[-2] fib_series.append(next_number) # 处理n小于2的边界情况 if n == 1: fib_series = [1] print(fib_series) fibonacci_with_loop(10)
3. 边界情况未处理
当n=1时,你的代码会输出[0,1],这显然不对。可以给函数加上边界判断,适配所有n≥1的情况:
def fibonacci_with_loop(n): if n == 1: fib_series = [0] elif n == 2: fib_series = [0, 1] else: fib_series = [0, 1] for i in range(2, n): next_number = fib_series[-1] + fib_series[-2] fib_series.append(next_number) print(fib_series) fibonacci_with_loop(10)
运行修正后的代码,传入n=10就能得到你想要的前10项斐波那契数列了。
内容的提问来源于stack exchange,提问作者Abhishek Kumar
相关产品推荐
相关产品推荐

