zoukankan      html  css  js  c++  java
  • python的生成器(斐波拉契数列(Fibonacci))

    代码:

    函数版本:

    #斐波拉契数列(Fibonacci)
    def fib(max):
    	n=0
    	a,b=0,1
    	while n < max:
    		a,b = b,a+b
    		n = n+1
    	return "done"
    

    生成器版本:  

    def fib(max):
    	n=0
    	a,b=0,1
    	while n < max:
    		yield b
    		a,b = b,a+b
    		n = n+1
    	return "done"
    

    测试结果:  

    >>> fib(8)
    <generator object fib at 0x00000000031C1728>
    >>> next(fib(8))
    1
    >>> next(fib(8))
    1
    >>> next(fib(8))
    1
    >>> next(fib(8))
    1
    >>> f =fib(8)
    >>> next(f)
    1
    >>> next(f)
    1
    >>> next(f)
    2
    >>> next(f)
    3
    >>> next(f)
    5
    

    解释:next(fib(8))每一次都相当于初始化后的第一次next,所以都是返回1,而f=fib(8),next(f)就是每一次往下执行。

    小结:

    测试时发现的,记录一下。  

  • 相关阅读:
    Linux内核info leak漏洞
    ELK Stack部署
    centos下安装opencv
    windows10 进入BIOS
    Dockerfile语法简介
    JAVA 容器配置 JVM 监控
    docker registry
    squid
    正反向代理
    安装plsql
  • 原文地址:https://www.cnblogs.com/fanbi/p/9970945.html
Copyright © 2011-2022 走看看