• 生成器、迭代器、递归


    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
    #实现了累乘
  • 相关阅读:
    DS博客作业05--树
    DS博客作业03--栈和队列
    DS博客作业02--线性表
    DS博客作业01-日期抽象数据类型设计和实现
    easyx的基础应用教程
    C语言博客作业06--结构体&文件
    python接口自动化
    fiddler的使用
    python接口自动化——初级
    python.day.10——面向对象(二)
  • 原文地址:https://www.cnblogs.com/cfj271636063/p/5761142.html
Copyright © 2020-2023  润新知