码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Python学习六:模块


    文章目录

    • 一、概述
    • 二、自定义模块
      • 2.1 创建模块
      • 2.2 使用 import 语句导入模块
      • 2.3 使用 from...import 语句导入模块
      • 2.4 模块搜索目录
        • 添加sys.path目录方法一:临时添加
        • 添加sys.path目录方法二:添加.pth文件(推荐)
        • 添加sys.path目录方法三:在PYTHONPATH环境变量找那个添加
    • 三、Python中的包
      • 3.1 Python的包结构
      • 3.2 创建和使用包
        • 3.2.1 创建包
        • 3.2.2 使用包
    • 四、引入其他模块
      • 4.1 导入和使用标准模块
      • 4.2 第三方模块的下载与安装

    一、概述

    在Python中,一个扩展名为.py的文件就是一个模块
    通常是为了方便程序的可读性和可维护性、可重复性。
    即编好一个模块后,只要实现该功能的程序,都一个导入这个模块实现

    二、自定义模块

    2.1 创建模块

    新建一个文件,这个文件命名为“模块名+.py”的形式
    注意:创建模块时,设置的模块名不能是Python自带的标准模块名称

    模块文件的扩展名必须是.py

    eg:

    创建一个模块,命名为bmi.py

    def fun_bmi(person,height,weight):
        '''根据身高体重算出bmi值'''
        print(person+"的身高:"+str(height)+"米 \t 体重:"+str(weight)+"千克")
        bim=weight/(height*height)
        print(person+"的BMI指数为:"+str(bim))
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.2 使用 import 语句导入模块

    语法

    import modulename [as alias][,modulename,modulename,modulename ]
    
    • 1
    1. modulename 要导入的模块名称
    2. as alias 别名
    3. [,modulename] 一次可以导入多个模块

    在调用模块中的变量、函数、或者类时,需要在变量名、函数或者类名前添加“模块名.”作为前缀

    新建一个模块test.py

    import bmi
    
    if __name__ == '__main__':
        bmi.fun_bmi("张三",1.75,120)
    》》》
    张三的身高:1.75米 	 体重:120千克
    张三的BMI指数为:39.183673469387756
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2.3 使用 from…import 语句导入模块

    在使用import语句导入模块的时候,每一个导入都会创建一个新的命名空间,所以每次调用的时候需要加上前缀“模块名.”;如果每次不想创建新的命名空间,并且不使用前缀,就可以使用 from…import 语句,直接访问。

    语法
    from modelname import member

    1. modelname 模块名称,区分带小写
    2. member 用于指定的要导入的变量、函数或者变量名。可以同时导入多个,使用逗号隔开,所有就使用“*”代替
    from bmi import fun_bmi
    
    if __name__ == '__main__':
        fun_bmi("张三",1.75,120)
    》》》
    张三的身高:1.75米 	 体重:120千克
    张三的BMI指数为:39.183673469387756
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2.4 模块搜索目录

    当使用import语句导入模块的手,默认情况下,会按照一下顺序进行查找

    1. 当前目录(即执行的Python脚本文件所在目录)下查找
    2. 到PYTHONPATH(环境变量)下的每个目录查找
    3. 到python的默认按照目录下查找

    以上的目录的具体位置可以通过sys的sys.path变量中查找

    import sys
    print(sys.path)
    
    • 1
    • 2

    添加sys.path目录方法一:临时添加

    
    import sys
    if __name__ == '__main__':
        sys.path.append('地址')
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    通过该方法添加的目录只在执行当前文件的窗口中生效,窗口关闭后失效

    添加sys.path目录方法二:添加.pth文件(推荐)

    在Python的安装目录下的Lib\site-packages子目录中,创建一个扩展名为.pth的文件,文件里面写上地址就行了

    添加sys.path目录方法三:在PYTHONPATH环境变量找那个添加

    1. 在计算机图标右键,点击属性,点击高级系统设置
    2. 点击环境变量按钮
    3. 添加PYTHONPATH和所需要的模块位置
    4. 将PYTHONPATH添加到path中

    三、Python中的包

    3.1 Python的包结构

    在这里插入图片描述

    3.2 创建和使用包

    3.2.1 创建包

    1. 创建一个文件夹
    2. 在文件夹创建一个名为__init__.py的文件

    在webStorm
    在这里插入图片描述

    3.2.2 使用包

    语法一:导入该包的所有模块

    import + 完成的包名 +模块名
    
    • 1

    在这里插入图片描述
    语法一:导入该包的指定模块

    from + 完成的包名 +import +模块名
    eg shop import *
    
    • 1
    • 2

    在这里插入图片描述

    四、引入其他模块

    4.1 导入和使用标准模块

    标准模块:就是Python自带的使用的模块称之为标准模块(也称为标准库)

    import 模块名
    
    eg:
    import random 
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    执行结果
    在这里插入图片描述

    4.2 第三方模块的下载与安装

    pip <command> [modulename]
    
    • 1
    1. command 用于指定要执行的命令
    2. modulename 可选参数

    eg:安装第三方模块
    pip install numpy

  • 相关阅读:
    一篇文章带你用动态规划解决股票购买时机问题
    基于ASP.NET的Web应用系统架构探讨
    车载多通道语音识别挑战赛(ICMC-ASR)丨ICASSP2024
    芯驰科技出席2023云栖大会,探讨新汽车舱驾融合
    分布式事务的锁
    Litestar 4D:隧道照明
    6、Maven的依赖
    高级工程师评审:高级工程师有哪些专业?高级工程师职称专业分类
    万字详解ThreadLocal 源码剖析及使用场景
    16-SpringBoot 整合Druid数据源
  • 原文地址:https://blog.csdn.net/huiguo_/article/details/127417473
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号