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
    #实现了累乘
  • 相关阅读:
    Q群
    shell脚本写host类型executable
    Oracle EBS 基于Host(主机文件)并发程序的开发
    ORALCE存储之ROWID
    HOW TO LINK THE TRANSACTION_SOURCE_ID TO TRANSACTION_SOURCE_TYPE_ID
    查找Form文件
    ORACLE column_type_id与实际type的对应关系
    OAF jar包引用产生错误
    计算Trial Balance的新方法(转)
    如何访问到XtreemHost上的站点?
  • 原文地址:https://www.cnblogs.com/cfj271636063/p/5761142.html
Copyright © 2011-2022 走看看