继续做题~经过py3测试
原题链接:http://www.runoob.com/python/python-exercise-example6.html
题目:斐波那契数列。
我的代码:
def fib(n): if n==1: l=[0] elif n==2: l=[0,1] else: l=[0,1] for i in range(2,n): l.append(l[i-1]+l[i-2]) return l
思考:函数fib是以列表的形式返回的斐波那契数列,该列表第0/1位的无法迭代得出,所以用了if来解决这个问题。但是判断的次数很多,其实代码很繁琐。
看了题目下面的答案,可以用迭代的形式一次输出一个数字,代码也简洁了很多~
def Fib(n): a, b = 0, 1 #直接用变量给出了1,2个数,不需要if print(a) while n-1: a, b, n = b, a + b, n - 1 #用一行代码就实现了斐波那契数列的迭代,也实现了循环的计数 print(a)