Pthon中使用类的方式输出斐波那契数列

类和对象之间的关系:
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个数的值

你可能感兴趣的:(日常总结)