1、基本方法
def Fib(n):
if n <=1:
return n
else:
return Fib(n-1) + Fib(n - 2)
x = eval(input("Please input a num:"))
if x <0:
print("Please input a right num!")
else:
for i in range(x):
print(Fib(i))
2、建个类
class Fib():
def __init__(self, num):
a, b, list = 0, 1, []
for i in range(num):
list.append(a)
a, b = b, a + b
self.numbers = list
def __str__(self):
return str(self.numbers)
__repr__ = __str__
n = eval(input("Please input a num:"))
print(Fib(n))
3、使用__call__改进 --- 类实例变为可调用对象
class Fib(object):
def __call__(self, num):
a, b, list = 0, 1, []
for i in range(num):
list.append(a)
a, b = b, a + b
self.numbers = list
return list
f = Fib()
print f(10)