zoukankan      html  css  js  c++  java
  • Python之浅谈模块

    模块的四种形式

    什么是模块

    ​ 模块就是一个py文件, 这个py文件有一大堆函数

    1. 自定义模块,common.py就叫做common模块
    2. 第三方模块: 需要自己安装 13万个第三方库 ,无所不能,写库(弄得更简单)
    3. 内置模块: python解释器自带的,不需要安装
    4. 包--> 含有__inti__.py的文件夹,一种特殊的模块(解决了一个问题)

    import和from......import

    import首次导入模块发生了3件事:

    1. 以模块为准创造一个模块的名称空间

    2. 执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间

    3. 在当前执行文件中拿到一个模块名

    from...import...首次导入模块发生了3件事:

    1.以模块为准创造一个模块的名称空间
    2.执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间
    3.在当前执行文件的名称空间中拿到一个名字,该名字直接指向模块中的某一个名字,意味着可以不用加任何前缀而直接使用

    循环导入

    # m1.py
    print('from m1.py')
    from m2 import x
    
    y = 'm1'
    #在运行m1时会去m2中找x但在第二行时又会去m1中找y,这样就会造成死循环,并报错
    
    # m2.py
    print('from m2.py')
    from m1 import y
    
    x = 'm2'
    #在运行m2时会去m1中找y但在第二行时又会去m2中找x,这样就会造成死循环,并报错
    
    
    #解决方法
    
    # m1.py
    print('from m1.py')
    
    
    def func1():
        from m2 import x
        print(x)
    
    
    y = 'm1'
    
    # m2.py
    print('from m2.py')
    
    def func1():
        from m1 import y
        print(y)
    
    
    x = 'm2'
    
    

    模块的搜索路径

    模块其实就是一个文件,如果要执行文件,首先就需要找到模块的路径(某个文件夹)。如果模块的文件路径和执行文件不在同一个文件目录下,我们就需要指定模块的路径。

    模块的搜索路径指的就是在导入模块时需要检索的文件夹。

    导入模块时查找模块的顺序是:

    1. 先从内存中已经导入的模块中寻找
    2. 内置的模块
    3. 环境变量sys.path中找

    Python文件的两种用途

    python文件总共有两种用途,一种是执行文件;另一种是被当做模块导入。

    执行文件: 当前运行的文件就叫做执行文件

    模块文件: 运行05 Python文件的两种用途.py文件, m1就是模块文件

    执行文件和模块文件是相对的.

    random模块

    import random
    
    # 最常用的方法
    print(random.random())  # 0-1的随机数
    
    print(random.randint(0,100))  # 0-100的整数
    
    lt = [1,2,3,4,5,]
    random.shuffle(lt)  # 打乱容器类元素  --> 列表和字典
    print(lt)
    
    # 了解
    
    print(random.randrange(1,10))  # 1,9之内的整数
    
    print(random.uniform(1,3))  # 1-3的小数
    
    print(random.choice([1,2,3,'a','b']))  # 选一个
    
    print(random.sample([1,2,3,'a','b'],2))  # 选2个
    
    
  • 相关阅读:
    Algorithm Gossip (48) 上三角、下三角、对称矩阵
    .Algorithm Gossip (47) 多维矩阵转一维矩阵
    Algorithm Gossip (46) 稀疏矩阵存储
    Algorithm Gossip (45) 费氏搜寻法
    Algorithm Gossip (44) 插补搜寻法
    Algorithm Gossip (43) 二分搜寻法
    Algorithm Gossip (42) 循序搜寻法(使用卫兵)
    Algorithm Gossip (41) 基数排序法
    Algorithm Gossip (40) 合并排序法
    AlgorithmGossip (39) 快速排序法 ( 三 )
  • 原文地址:https://www.cnblogs.com/MrYang161/p/11359832.html
Copyright © 2011-2022 走看看