第一个思路是,求多少个斐波那契数:
def Fib(num):
a, b = 0, 1
res = []
for i in range(num):
res.append(a)
a, b = b, a+b
return res
Fib(10)
或者连列表也省了,直接打印:
def Fib(num):
a, b = 0, 1
for i in range(num):
print(a, end=' ')
a, b = b, a+b
Fib(10)
第二个思路是,求两个数之间的斐波那契数
def fib_between(start, end):
a, b = 0, 1
while a < end:
if a >= start:
print(a, end=' ')
a, b = b, a + b
fib_between(1, 100)
把函数封装到类里,从第一个思路里变化出的
class Fib(object):
def __init__(self, num):
self.res = []
self.num = num
a = 0
b = 1
for i in range(num):
self.res.append(a)
a, b = b, a + b
def __str__(self):
return str(self.res)
def __len__(self):
return self.num
f = Fib(10)
print(f)
print(len(f))
或者:
class Fib(object):
def __init__(self):
self.res = []
def __call__(self, num):
a = 0
b = 1
for x in range(num):
self.res.append(a)
a, b = b, a + b
return self.res
f = Fib()
print(f(10))