一、生成器表达式
    res=[i for i in range(10) if i > 5]
    print(res)
    
    g=(i for i in range(10) if i > 5)
    print(g)
    print(next(g))
    print(next(g))
    print(next(g))
    print(next(g))
    print(next(g))
    with open('a.txt',mode='rt',encoding='utf-8') as f:
        print(len(f.read()))
        
        g=(len(line) for line in f)
        res=sum(g)
        
        res = sum(len(line) for line in f)
        print(res)
        
二、模块
    1.什么是模块
        模块就是一系列功能的集合体
        模块分为四个通用的类别:
            1.使用python编写的.py文件
            2.已被编译为共享库或DLL的C或C++扩展
            3.把一系列模块组织到一起的文件(注:文件夹下有一个__init__.py文件,该文件夹称之为包)
            4.使用C编写并链接到python解释器的内置模块
        模块有三种来源:
            1.内置模块
            2.第三方模块
            3.自定义模块
        
    2.为何要用模块
        1.使用内置的或者第三方的模块的好处是:拿来主义,极大提升开发效率
        2.使用自定义的模块的好处是:将程序各部分组件共用的功能提取取出放到一个模块里,其他的组件通过导入的方式使用该模块,该模块即自定义的模块,好处是可以减少代码冗余
    3.如何用模块
        其他笔记去run.py中查看
        
        
三、模块的搜索路径
    查找模块路径的优先级
    1. 内存
    2. 内置模块
    3. sys.path(是以执行文件为准的)
    import sys
    print(sys.path)
    import spam
    print(spam.money)
    import time
    time.sleep(15)
    import spam
    print(spam.money)
    import time
    print(time)
    print(time.time())
    import sys
    print(sys.path)
    import sys
    sys.path.append(r'D:\脱产5期内容\day15\aaa')
    import spam
    print(spam.money)
    from aaa import spam
    print(spam.money)
    from aaa import m1
    m1.f1()
    
    
    import sys
    print('执行文件: ',sys.path)
    from aaa import m1
    
四、如何区分python文件的两种用途
    def f1():
        print('f1')
    def f2():
        print('f2')
    if __name__ == '__main__':
        f1()
        f2()
    # print(__name__)
    # 当文件被当作执行文件执行时__name__的值为__main__
    # 当文件被当作模块导入时__name__的值为模块名mmm
五、软件开发的目录规范
    #等本周复习完成后,继续编辑