类和对象之间的关系:
1、先有类后有对象
2、类只有一个对象可以有多个
class Fib(): # 定义一个类
def __init__(self): # 初始化
pass
def __call__(self,month): # 相当于有函数的功能
a,b=0,1 # a=0就不会出现数列开头是1,2,3而不是1,1,2,3这样的问题
n=1 # 初始值
while n<=month: # 循环的控制条件
a,b=b,a+b
n+=1 # 步长值
return a # 返回a的值
f=Fib() # 调用函数
for i in range(1,12): # 从1开始,从0开始的话就错了
print(f(i),end=",") # 输出数列,不换行
print()
class Fib(object): # 定义一个类
def __init__(self): # 初始化
pass
def __call__(self,n): # 相当于有函数的功能
a,b=1,1
self.lst=[] # 列表
if n<=2:
self.lst.append(1) # 向列表里追加
self.lst.append(2) # 向列表里追加
else:
for i in range(1,n+1): # 循环取值
self.lst.append(a) # 向列表里追加
a,b=b,a+b
return self.lst # 返回列表
def __str__(self):
return str(self.lst) # 返回字符串类型的列表
f=Fib() # 调用函数
ret=f(12)
print(ret) # 输出数列
也可以用函数直接算出斐波那契数列的第n个值
def func(n): # 定义函数
if n==1 or n==2: # 如果n等于1或者2 返回1
return 1
else:
return func(n-1)+func(n-2)
print(func(n)) # 输出斐波那契数列中第n个数的值