zoukankan      html  css  js  c++  java
  • day14 列表生成式 生成器表达式 模块

    https://shimo.im/docs/q4iInByvaMYoEwBS

    egg_list=['鸡蛋%s' %i for i in range(10)] #列表解析

    egg_list=['鸡蛋%s' %i for i in range(10) if i >2 ] #按条件筛选并列表解析

    egg_list=('鸡蛋%s' %i for i in range(10) if i >2 ) #将中括号改成()就是生成器表达式了

    生成的是生成器,所以他只是一个内存地址,要打印出来,需要将他转成列表,或者__next__取出下一个值

    列表生成器的引用场景:将列表内的 所有元素都改成大写

    列表生成式只能用在元素个数少的时候

    生成器表达式是用在避免内存过大的时候

    双括号简化成单括号

    max((len(line) for line in f))
    简化
    max(len(line) for line in f)

    什么是模块?
    模块是系统功能的集合体

    模块的四种类型
    py文件即模块
    解释器内置模块
    把一系列模块放到同一个文件夹里,这个文件夹成为包(如果文件夹内有__int__.py)
    共享库,dll或c++扩展

    为什么使用模块
    文件级别组织程序,方便管理
    提高开发效率

    import模块的执行流程
    当前文件内执行,遇到import时,会运行模块文件
    这时,内存里会出现2个命名空间
    一个是当前文件的,一个是模块文件的命名空间
    模块文件,将产生的名字存放于模块名称空间

    模块文件内的变量引用在模块对应的命名空间中找,自己的空间中找不到再到当前执行文件的命名空间中找(如果有多个命名空间,那么去哪个空间找?)

    模块被引用后,模块存在于内存空间,即使你删除了对应模块的文件
    所以模块引用只需在全局引用一次,即使不同的作用域都能使用导入的模块

    引用的三种模式
    import 模块
    直接引用模块,需要指名道姓地使用模块子功能 例:time.time()
    import 模块,模块(不推荐)
    import 模块 as 模块简称
    直接引用模块的简称,用模块简称使用模块子功能 例:tm.time()
    from 模块 import 模块子功能,模块子功能...
    只引入模块里的子功能,以逗号分隔引入的多个子功能 例:time 调用加()
    使用功能时直接用模块子功能的名字即可,但会和当前名称空间中相同的名字发生冲突


    from 模块 import *
    模块设计者可以设置想让*引入的功能名字:__all__=['功能名字','功能名字']

    引入模块是不是引入模块文件?那么文件的越小速度越快?

    __name__的值
    在文件直接执行的情况下,等于‘__main__’
    文件被导入的情况下,等于模块名


    模块的搜索路径
    import sys
    print(sys.path)
    打印出来的是列表
    列表第一条是执行文件所在的文件夹的路径
    pycharm中,列表第二条是pycharm多余给加的

    模块的查找顺序
    1.内存中已经加载的模块
    2.内置模块
    3.sys.path路径中包含的模块
    sys.path是不是系统的path路径,如果不是,那么sys代表的是谁
    执行文件在C盘,模块文件在D盘,这种怎么找?sys.path.append(r'绝对路径') 永久的还是存在内存里的

    sys.path的第一个路径是当前执行文件所在文件夹的路径

  • 相关阅读:
    Flask的部署
    server 08 R2 NBL 报错:RPC 服务器在指定计算机上不可用
    Exchange 2010 打补丁的顺序
    批量创建域账号
    Exchange 正版化 授权
    邮件本地备份策略原则
    TMG 模拟公司网络架构要点
    webservice 测试地址
    PYDay10&11&12&13-常用模块:time|datetime|os|sys|pickle|json|xml|shutil|logging|paramiko、configparser、字符串格式化、py自动全局变量、生成器迭代器
    Python 编程要求
  • 原文地址:https://www.cnblogs.com/shanjinghao/p/8709497.html
Copyright © 2011-2022 走看看