1 def fabi(n): 2 return 1 if n in (0,1) else fabi(n-1) + fabi(n-2) 3 4 for x in range(5): 5 print fabi(x) 6 7 def fabi1(n): 8 return ([1 for x in (1,) if n in (0,1)] + [fabi1(n-1) + fabi1(n-2) for x in (1,) if n >= 2])[-1] 9 10 for x in range(5): 11 print fabi1(x)
X if C else Y是python 2.5以后的新语法
fabi1是使用列表表达式来实现的, 太繁琐, 其实有很多其他方法的