• 学习日志2018.10.11


     模块和一些内置函数 
    模块是什么:  *****
            模块 是一组功能的集合
            python中一个功能就是一个函数
            一个py文件就是一个模块
            例如 A.py   文件名A.py 模块名 A
     
    模块的分类:
            1.自定义模块 *****
                (第三方模块也属于自定义 它是别的程序员写的 )
                关注如何自定义
            2.内置模块 ****
                是c语言写的 然后连接到python解释器中
                例如 time模块
                关注如何使用
     
            3.已经编译为DLL c或c++ ***
                不需要知道怎么来的 会用就行
            4.包  *****
               包实际上是包含一堆模块的文件夹
               之后详细将
            对于这四种模块 它们的使用方式 是一致的
     
    如何定义模块:*****
        创建一个py文件  把你的功能写到文件中
     
    如何使用模块:*****
        import 关键字 用于导入模块到当前文件中
        例如:import time
     
     
    当执行import 做了什么? ****
        1.创建了一个命名空间
        2.执行被导入的py中的代码 将里面的名字和地址对应关系 存储到命名空间中
        3.在执行文件中 创建一个名字 该名字指向的地址就是 第一步创建的命名空间(模块的命名空间)
     
    执行文件和被导入的模块的命名空间 是相互独立的 ****
        在被导入模块中 所有的名字使用的都是自己空间中的  和调用者无关
     
    import 的其他写法 *****
        1.import xxx  as xxx
        给模块取别名 用于简化书写
        2.import xxx,xxxx
        一次导入多个模块
        3.from xxx import xxx
            从模块中导入某个名字到当前名称空间
            注意 要避免名称冲突
            如果冲突了 按照就近查找原则
        4.from xxx import xxx,xxx,xx
            从模块中导入多个名称
        5.from xxx import *
            从模块中导入所有名称
            __all__用于控制 使用者可以使用哪些名称
        6 from xxx import xx as xx
            取别名
        from 和 import 除了导入的名称 不同 其他特性一致
     
    py文件的两种执行方式 *****
        1.作为执行文件  (右键run)
        2.作为模块被导入
     
        __name__ 这个名称 可以获取当前执行状态
        如果是__main__ 说明当前是执行文件
        否则 说明是作为模块
        于是乎有了以下代码
            if __name__ == "__main__":
                print("作为执行文件")
            else:
                print("作为模块导入了")
     
    重复导入模块时  模块中的代码不会重复执行 仅在第一次导入时执行
     
     
    模块的搜索顺序 *****
    内存中已经加载的 - > 内置模块 - > sys.path
    通常我们子啊编写项目时 会自己将模块的路径加入到sys.path中
    print(abs(-100))
    print(all([1,0])) # 全部为真结果为真
    print(any([1,0])) # 有一个为真结果为真
    print(type(ascii(1))) # 返回这个对象的字符串表示 如果有中文就变成了ascII编码 没意思
    print(type(str("哈哈")))
    print(bin(11)) # 二进制
    print(oct(12)) # 八进制
    print(hex(13)) # 十六进制
    print(bool("")) # 转bool类型
    print(callable(f)) # 是否可被调用
    print(chr(97)) # 把整数转为unicode字符
    print(chr(ord("哈"))) # 反过来
    print(bytearray("abc哈哈",encoding="utf-8"))
    print("哈哈".encode("utf-8"))
    print(bytes("哈哈",encoding="utf-8"))
    print(callable(f)) # 是否可被调用
    eval# 执行一行python代码 并返回执行结果
    exec执行一堆python代码 不返回任何结果
    excuteable = compile("1+2*3","","eval") # 将一个表达式 或时 一堆代码 编译成一个可执行对象
  • 相关阅读:
    高级程序员和普通程序员有哪些区别?
    自学编程需要注意什么?
    你是如何转行的?转行容易吗?
    什么是VueCLI3
    强制缓存和协商缓存有什么区别
    npm与package.json
    最高效的学习方法——逆向学习法
    html space空格符
    in typeof instanceof ===这些运算符有什么作用
    教你如何“快速”激活IntelliJ IDEA 工具
  • 原文地址:https://www.cnblogs.com/jutao/p/9774065.html
Copyright © 2020-2023  润新知