• day6学python 生成器迭代器+压缩文件


    生成器迭代器+压缩文件

    readme的规范

    1软件定位,软件的基本功能
    2运行代码的方法:安装环境,启动命令
    3简要的使用说明
    4代码目录结构说明,更详细点可以说明软件的基本原理
    5常见问题说明

    ========================================================

      列表生成器

    [i*2 for i in range(10)]    #开头的可为函数也可为方程

    已经在内存中生成 存在并可调用

    ==========================================================

       生成器:generator(有yield关键词存在 就是生成器)

    1.一边循环一边计算的机制

    2.循环到时才能使用

    3.只记录当前位置

    a=(i*2 for i in range(10))

    特点 :

    1.在调用时只能用__next__()方法 一次次调用(用来唤醒yield)

    2.不可像调用列表一样调用生成器

    作用:

    1.在运行循环时可进出自由 增加语句

    ##生成器并行##

    import time
    def maker(name):
        c1=eater("a")
        c2=eater("b")
        c1.__next__()
        c2.__next__()
        print(name,"doing")
        for i in range (10):
            time.sleep(1)
            print("第{}个".format(i+1))
            c1.send(i)
            c2.send(i)
    def eater(name):
        print(name,"eating=====")
        while True:
            baozi = yield
            print("包子{}号来了,给{}吃了".format(baozi+1,name))
    maker("cc")

    ===================================================================

      可迭代对象和迭代器

    1.可迭代对象:Iterable 可循环的对象(例:list,tuple,dict,set,str,生成器)

    2.迭代器:Iterator可以被next()函数调用 不断返回下一个值的对象

    3.生成器都是迭代器

    4.列表字典字符串不是迭代器! 但可用iter(列表/字典/字符串)获得迭代器对象

    
    

     ==================================================================

      内置方法(节选)

    exec()执行字符串

    a="print("hello")"
    exec(a)

    eval(str)将字符串去掉“”(”蜕皮“)

    eval("2+1")

    结果:3

    lambda作为匿名函数关键词

    filter()从一组数据中过滤想要的

    res1=filter(lambda n:n>5,range(10))

    结果:6,7,8,9

    map()对传入的数值进行处理后返回

    res2=map(lambda n:2*n,range(10))

    结果:0,2,4,6,8,10,12,14,16,18

    zip() 将两个数组对应成元组 按少的来

    a=[1,2,3,4,5]
    b=["a","b","c"]
    for i in zip(a,b):
        print(i)

    结果:(1, 'a') (2,'b') (3,'c')

    返回当前目录的相对路径

    print(__file__)

    os.path.abspath(文件)#返回当前目录的绝对路径

    import os
    print(os.path.abspath(__file__))

    os.path.dirname(“路径”)返回去文件名的绝对路径(返回当前文件上级)

    a=os.path.dirname(os.path.abspath(__file__))
    import sys
    print(sys.path)

    ---恢复内容结束---

      readme的规范

    1软件定位,软件的基本功能
    2运行代码的方法:安装环境,启动命令
    3简要的使用说明
    4代码目录结构说明,更详细点可以说明软件的基本原理
    5常见问题说明

    ========================================================

      列表生成器

    [i*2 for i in range(10)]    #开头的可为函数也可为方程

    已经在内存中生成 存在并可调用

    ==========================================================

       生成器:generator(有yield关键词存在 就是生成器)

    1.一边循环一边计算的机制

    2.循环到时才能使用

    3.只记录当前位置

    a=(i*2 for i in range(10))

    特点 :

    1.在调用时只能用__next__()方法 一次次调用(用来唤醒yield)

    2.不可像调用列表一样调用生成器

    作用:

    1.在运行循环时可进出自由 增加语句

    ##生成器并行##

    import time
    def maker(name):
        c1=eater("a")
        c2=eater("b")
        c1.__next__()
        c2.__next__()
        print(name,"doing")
        for i in range (10):
            time.sleep(1)
            print("第{}个".format(i+1))
            c1.send(i)
            c2.send(i)
    def eater(name):
        print(name,"eating=====")
        while True:
            baozi = yield
            print("包子{}号来了,给{}吃了".format(baozi+1,name))
    maker("cc")

    ===================================================================

      可迭代对象和迭代器

    1.可迭代对象:Iterable 可循环的对象(例:list,tuple,dict,set,str,生成器)

    2.迭代器:Iterator可以被next()函数调用 不断返回下一个值的对象

    3.生成器都是迭代器

    4.列表字典字符串不是迭代器! 但可用iter(列表/字典/字符串)获得迭代器对象

    
    

     ==================================================================

      内置方法(节选)

    exec()执行字符串

    a="print("hello")"
    exec(a)

    eval(str)将字符串去掉“”(”蜕皮“)

    eval("2+1")

    结果:3

    lambda作为匿名函数关键词

    filter()从一组数据中过滤想要的

    res1=filter(lambda n:n>5,range(10))

    结果:6,7,8,9

    map()对传入的数值进行处理后返回

    res2=map(lambda n:2*n,range(10))

    结果:0,2,4,6,8,10,12,14,16,18

    zip() 将两个数组对应成元组 按少的来

    a=[1,2,3,4,5]
    b=["a","b","c"]
    for i in zip(a,b):
        print(i)

    结果:(1, 'a') (2,'b') (3,'c')

    返回当前目录的相对路径

    print(__file__)

    os.path.abspath(文件)#返回当前目录的绝对路径

    import os
    print(os.path.abspath(__file__))

    os.path.dirname(“路径”)返回去文件名的绝对路径(返回当前文件上级)

    a=os.path.dirname(os.path.abspath(__file__))
    import sys
    print(sys.path)

    ---恢复内容结束---

      readme的规范

    1软件定位,软件的基本功能
    2运行代码的方法:安装环境,启动命令
    3简要的使用说明
    4代码目录结构说明,更详细点可以说明软件的基本原理
    5常见问题说明

    ========================================================

      列表生成器

    [i*2 for i in range(10)]    #开头的可为函数也可为方程

    已经在内存中生成 存在并可调用

    ==========================================================

       生成器:generator(有yield关键词存在 就是生成器)

    1.一边循环一边计算的机制

    2.循环到时才能使用

    3.只记录当前位置

    a=(i*2 for i in range(10))

    特点 :

    1.在调用时只能用__next__()方法 一次次调用(用来唤醒yield)

    2.不可像调用列表一样调用生成器

    作用:

    1.在运行循环时可进出自由 增加语句

    ##生成器并行##

    import time
    def maker(name):
        c1=eater("a")
        c2=eater("b")
        c1.__next__()
        c2.__next__()
        print(name,"doing")
        for i in range (10):
            time.sleep(1)
            print("第{}个".format(i+1))
            c1.send(i)
            c2.send(i)
    def eater(name):
        print(name,"eating=====")
        while True:
            baozi = yield
            print("包子{}号来了,给{}吃了".format(baozi+1,name))
    maker("cc")

    ===================================================================

      可迭代对象和迭代器

    1.可迭代对象:Iterable 可循环的对象(例:list,tuple,dict,set,str,生成器)

    2.迭代器:Iterator可以被next()函数调用 不断返回下一个值的对象

    3.生成器都是迭代器

    4.列表字典字符串不是迭代器! 但可用iter(列表/字典/字符串)获得迭代器对象

    
    

     ==================================================================

      内置方法(节选)

    exec()执行字符串

    a="print("hello")"
    exec(a)

    eval(str)将字符串去掉“”(”蜕皮“)

    eval("2+1")

    结果:3

    lambda作为匿名函数关键词

    filter()从一组数据中过滤想要的

    res1=filter(lambda n:n>5,range(10))

    结果:6,7,8,9

    map()对传入的数值进行处理后返回

    res2=map(lambda n:2*n,range(10))

    结果:0,2,4,6,8,10,12,14,16,18

    zip() 将两个数组对应成元组 按少的来

    a=[1,2,3,4,5]
    b=["a","b","c"]
    for i in zip(a,b):
        print(i)

    结果:(1, 'a') (2,'b') (3,'c')

    返回当前目录的相对路径

    print(__file__)

    os.path.abspath(文件)#返回当前目录的绝对路径

    import os
    print(os.path.abspath(__file__))

    os.path.dirname(“路径”)返回去文件名的绝对路径(返回当前文件上级)

    a=os.path.dirname(os.path.abspath(__file__))
    import sys
    print(sys.path)
  • 相关阅读:
    Vertica的这些事(九)——-vertica存储统计信息
    Vertica的这些事(八)——-Vertica-管理
    Vertica的这些事(六)——-vertica中group-by-和join-语句的优化
    Vertica的这些事(五)——-谈谈vertica的flex-table
    Vertica的这些事(四)——-vertica加密数据
    Vertica的这些事(三)——Vertica中实现Oracle中的ws_concat功能
    Vertica的这些事(二)——SQL-Server、Oracle、MySQL和Vertica数据库常用函数对比
    Docker_安装和卸载(2)
    Docker_简介(1)
    Jenkins_创建git任务(3)
  • 原文地址:https://www.cnblogs.com/cc123nice/p/10473943.html
Copyright © 2020-2023  润新知