import datetime
deffib1(n=35):
a =0
b =1for i inrange(n-1):
a, b = b, a + b
return b
deffib2(n=35):return1if n<3else fib2(n-1)+ fib2(n-2)deffib3(n=35, a=0, b=1):
a, b = b, a + b
if n ==1:return a
return fib3(n-1, a, b)
fns =[fib1, fib2, fib3]# fns = [fib1, fib3]for fn in fns:
start = datetime.datetime.now()for i inrange(100):
fn()
delta =(datetime.datetime.now()- start).total_seconds()print(fn, delta)
<function fib1 at 0x0000000004F844C8>0.0<function fib2 at 0x0000000004F84A68>182.069<function fib3 at 0x0000000004FA1288>0.001