利用Python编写的Fibonacci

python 专栏收录该内容
54 篇文章 0 订阅

利用Python编写的Fibonacci数列,用到了逻辑推导式,必用迭代方法,跟大家分享

(一) 

# 节省数据存放的空间(需要准备大量的数据,用于计算)
import time

class Fibonacci(object):
    def __init__(self,max = 10):
        self.current_num = 0
        self.max = max
        self.a = 0
        self.b = 1 

    def __iter__(self):
        return self

    def __next__(self):
        if self.current_num < self.max:
            ret = self.a
            #self.a,self.b = self.b,self.a + self.b 就是抄逗号前部等于袭等号后面百的度第一个(知self.a = self.b),逗号后面一道个等于等号后面的最后一个(self.b = self.a + self.b).
            #self.a = self.b,self.b = self.a+self.b;x,y =self.a,self.a+self.b
            self.a, self.b = self.b,self.a+self.b
            self.current_num += 1
            return ret
        else:
            self.current_num = 0
            self.a = 0
            self.b = 1
            raise StopIteration


f1 = Fibonacci(100)

for temp in f1:
    print(temp)
    time.sleep(0.1)
            
    
        
        
        

 运行效果:

 

(二)

def fab(num):
    a ,b=0, 1
    current_num = 0
    while True:
        if current_num < num:
            #print(a)
            yield a #碰到了yield相当于一个断点并返回,再次遍历或者使用next不会从函数开头执行,
            #从yield位置继续执行,直到碰到yield又一次断点断开
            a ,b = b , a+b
            current_num += 1
        else:
            break


f1 = fab(8)
for temp in f1:
    print(temp)
    

运行效果;

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值