斐波那契数列,又称黄金分割数列 [0,1,1,2,3,5,8,13,21..]
写了个递归函数, 计算第n项值
def func(n): if n == 0: return 0 elif n == 1: return 1 else: return func(n-2) + func (n-1)
</pre>发现n > 30 之后,执行时间非常长,于是想知道具体的代码执行时间,</p><p><h2>方法1:timeit 模块</h2><div><pre name="code" class="plain">>>> from timeit import Timer >>> t1 = Timer("func(30)", "from __main__ import func") >>> t2 = Timer("func(35)", "from __main__ import func")
>>> t1.timeit(1) 0.5481270925380386 >>> t2.timeit(2) 12.405652104510068
>>> t1.timeit(3) 1.6510642680780165 >>> t2.timeit(3) 18.92313576122126
>>> t1.repeat(3, 1) [0.5405368141019835, 0.5502100386017901, 0.5496847882153588]
from time import clock def func(n): if n == 0: return 0 elif n == 1: return 1 else: return func(n-2) + func (n-1) if __name__ == '__main__': start = clock() print func(40) finish = clock() print (finish-start)