吃鲸不放辣 发表于 2020-6-3 16:50:51

斐波那契数列迭代算法

各位大佬,写的代码如下:
>>> def bbsl(n):
        list1=
        cont=0
        if n==1:
                return 1
        elif n==2:
                return 2
        else:
                for n in range(3,n+1):
                        cont=list1+list1
                        list1.append(cont)
                        return list1


执行结果:
>>> bbsl(8)


请教为什么没有循环起来?感谢大佬!

Twilight6 发表于 2020-6-3 16:54:59

因为你for循环下直接写了 return

把return移到for循环外
def bbsl(n):
    list1 =
    if n == 1:
      return 1
    elif n == 2:
      return 2
    else:
      for n in range(3, n + 1):
            cont = list1 + list1
            list1.append(cont)
      return list1
print(bbsl(8))

qiuyouzhi 发表于 2020-6-3 16:55:03

把else里面的return放到循环外面

冬雪雪冬 发表于 2020-6-3 16:55:24

return不要放在循环中,执行到这步就结束了。要与else对对齐

吃鲸不放辣 发表于 2020-6-3 17:13:35

Twilight6 发表于 2020-6-3 16:54
因为你for循环下直接写了 return

把return移到for循环外

谢谢大佬!
页: [1]
查看完整版本: 斐波那契数列迭代算法