zoukankan      html  css  js  c++  java
  • 生成器、迭代器、递归

    27、生成器:
       1、    >>> def f1():
    ...     print(123)
    ...     yield 1
    ...     yield 2
    ...     yield 3
    ...
    >>> ret = f1()
    >>> ret.__next__() # 进入函数找到yield 获取yield 后面的数据。
    123
    1
    >>> ret.__next__() #进入函数找到yield 获取yield 后面的数据。
    2
    >>> ret.__next__() # 进入函数找到yield 获取yield 后面的数据。
    3
       2、    >>> def f1():
    ...     print(123)
    ...     yield 1
    ...     yield 2
    ...     yield 3
    ...
    >>> ret = f1()
    >>> ret1 = list(ret)
    123
    >>> print(ret1)
    [1, 2, 3]
            3、生成器实现range()
         
    def myrange(arg):
        start =  0
        while True:
            if start >  arg:
                return
            yield  start
            start += 1
    ret = myrange(3)
    r1 =  ret.__next__()
    print(r1)
    r1 =  ret.__next__()
    print(r1)
    r1 =  ret.__next__()
    print(r1)
    r1 =  ret.__next__()
    print(r1)
    r1 =  ret.__next__()
    print(r1)
    28、迭代器:
          会使用封装了迭代器的 for 循环。
    29、递归:
         1、实现累乘 :2 * 3 * 4 * 5 * 6 * 7
    def func(n):
        n += 1
        if n > 6:
            return n
        return  n * func(n)
    ret = func(1)
    print(ret)
    #2 * func(2)
    #2 * 3 * func(3)
    #2 * 3 * 4 * func(4)
    #2 * 3 * 4 * 5 * func(5)
    #2 * 3 * 4 * 5 * 6 * func(6)
    #2 * 3 * 4 * 5 * 6 * 7
    #实现了累乘
  • 相关阅读:
    团队冲刺第一阶段第三天
    团队冲刺第一阶段第二天
    团队冲刺第一阶段第一天
    学习进度07
    学习进度06
    结对编程之子数组最大的和(由于一直登不上我的账号,在规定日期内只在我搭档的博客上交了)
    小学四则运算网页版
    团队介绍
    学习进度条05
    111
  • 原文地址:https://www.cnblogs.com/cfj271636063/p/5761142.html
Copyright © 2011-2022 走看看