zoukankan      html  css  js  c++  java
  • python2.7 使用生成器方式实现斐波那契数列

    使用生成器方式实现斐波那契数列

    1 生成器 语法

    # 请注意下面的代码创建的不是一个列表而是一个生成器对象
    # 通过生成器可以获取到数据但它不占用额外的空间存储数据
    # 每次需要数据的时候就通过内部的运算得到数据(需要花费额外的时间)
    f = (x ** 2 for x in range(1, 1000))
    print(sys.getsizeof(f))  # 相比生成式生成器不占用存储数据的空间
    print(f)
    for val in f:
        print(val)
    

    除了上面提到的生成器语法,Python中还有另外一种定义生成器的方式,就是通过yield关键字将一个普通函数改造成生成器函数

    2 生成器方式实现斐波那契数列

    斐波那契数列又称费氏数列,是数学家Leonardoda Fibonacci发现的。指的是0、1、1、2、3、5、8、13、21、34、······这样的数列。即从0和1开始,第n项等于第n-1项与n-2项之和。需要注意的是0是第0项,而不是第一项。

    def fib(n):
        a, b = 0, 1
        for _ in range(n):
            a, b = b, a + b
            yield a
    """
    # 或是使用如下的赋值方式
    def fib(n):
        a, b = 0, 1
        for _ in range(n):
            n = a + b
            a = b
            b = n
            yield a
    """
    
    def main():
        for val in fib(20):
            print(val)
    
    if __name__ == '__main__':
        main()
    
    
    种一棵树最好的时间是十年前,其次是现在!
  • 相关阅读:
    MQ
    redis
    MongoDB
    进程相关命令
    catalina.sh
    tomcat-jvm
    中间件简介
    websphere
    mysql
    shell变量与字符串操作
  • 原文地址:https://www.cnblogs.com/gaozhidao/p/13161930.html
Copyright © 2011-2022 走看看