Python实现斐波那契序列每第4项输出的代码运行异常排查
核心问题
fibo_sequence函数仅直接打印斐波那契项,没有返回可迭代的序列对象,默认返回值为None,对其做循环迭代会直接报错fibo_skipper逻辑错误:嵌套循环多余,且当前打印的是索引值而非对应的斐波那契项
修正代码
调整fibo_sequence返回存储前n项的列表,再通过列表切片按步长4取对应项输出即可:
def fibo_sequence(n): # 参数合法性校验 if n <= 0: print("请输入正整数") return [] n1, n2 = 0, 1 fibo_list = [] for _ in range(n): fibo_list.append(n1) n1, n2 = n2, n1 + n2 return fibo_list def fibo_skipper(n): fibo_list = fibo_sequence(n) # 此处取第4、8、12...项(索引从0开始,第4项对应索引3) # 如果需要取第1、5、9...项,将切片起始位改为0即可,即 fibo_list[::4] for term in fibo_list[3::4]: print(term) n = 8 # 在此处设置项数上限 fibo_skipper(n)
运行效果
当n=8时,斐波那契前8项为[0, 1, 1, 2, 3, 5, 8, 13],运行后输出:
2 13
内容的提问来源于stack exchange,提问作者iamjr15
相关产品推荐
相关产品推荐

