
在介绍常用的模块用法前,我们先来回顾一下模块的内容,以及如何使用模块?
一、什么是模块?
1.1 定义
在 Python 中,将实现莫伊特定功能的代码放置在文件中,以便其它程序进行导入使用,这种方式可以避免函数名或变量名的冲突,这种文件称为 模块(Modules)
,格式为 扩展名.py
。
- 模块 = 函数 + 类 + 变量
打开 python 的安装包,可以看到 Lib
文件夹下全是模块。

1.2 分类
在 Python 中,模块分为 内置模块
和 自定义模块
两种。
内置模块
:目前 Python 内置模块大概在 200 多个,如:
模块名 | 描述 |
---|---|
sys | 与 Python 解释器及其环境操作相关的标准库。 |
time | 提供与时间相关的各种函数的标准库。 |
os | 提供了访问操作系统服务功能的标准库。 |
calendar | 提供与日期相关的各种函数的标准库。 |
urllib | 用于读取来自网上(服务器上)的数据的标准库。 |
json | 用于使用 JSON 序列化和反序列化对象。 |
re | 用于在字符串中执行正则表达式匹配和替换。 |
math | 提供算数运算函数的标准库。 |
decimal | 用于进行精确控制运算精度、有效位数和四舍五入操作的十进制运算。 |
shutil | 用于进行高级文件操作,如复制、移动和重命名等。 |
logging | 提供了灵活的记录事件、错误、警告和调试信息等日志信息的功能。 |
tkinter | 使用 Python 进行 GUI 编程的标准库。 |
自定义模块
:来自第三方提供的模块。
1.3 五种模块引入的方法
import 模块名
from 模块名 import 功能名
from 模块名 import *
import 模块名 as 别名
from 模块名 import 功能名 as 别名
(导入多个模块或功能时,用英文逗号分隔)
1)import 模块名(全部引入)
这是最基本的导入方式,它将整个模块导入到当前命名空间中。
-
格式:import 模块名
-
使用方法:模块名.功能名()
-
特点:
- 导入整个模块
- 需要使用模块名作为前缀来访问模块中的功能(如函数、类等)。
- 可以避免命名冲突,因为所有引用都明确指出是哪个模块的功能。
-
使用示例:
import math
print(math.sqrt(9)) # 求平方根
2)from 模块名 import 功能名(部分引入)
这种方式只导入模块中的特定功能(如函数、类等),而不是整个模块。
- 格式:from 模块名 import 功能名
- 使用方法:功能名()
- 特点:
- 只导入指定的功能,减少了内存占用。
- 不需要使用模块名作为前缀,直接调用功能名称即可。
- 如果导入多个功能,可以使用英文逗号分隔。
- 使用示例:
from math import sqrt, pow
print(sqrt(9)) # 求平方根
3)from 模块名 import *(引入公共功能)【不推荐】
这种方式会导入模块中的所有公共功能(即没有以下划线 _
开头的功能)。
- 格式:*from 模块名 import
- 使用方法:功能名()
- 特点:
- 导入模块中的所有公共功能。
- 不需要使用模块名作为前缀,直接调用功能名称即可。
- 使用示例:
from math import *
print(sqrt(16)) # 计算16的平方根
print(pow(2, 3)) # 计算2的3次方
注意: 这种方式可能会导致 命名冲突,因为它会将所有导出的功能引入当前命名空间。因此,通常不推荐在大型项目或生产环境中使用。
4)import 模块名 as 别名(设置模块别名)
这种方式允许为导入的模块指定一个别名,方便在代码中使用更短的名字来引用模块。
- 特点:
- 给模块起一个简短的别名,便于频繁使用时减少输入量。
- 特别适合于长模块名的情况,如
pandas
常用pd
作为别名。 - 仍然需要使用别名作为前缀来访问模块中的功能。
- 使用示例:
import numpy as np
array = np.array([1, 2, 3])
print(array) # 输出:[1, 2, 3]
注意: 设置别名后,不能再使用原有的模块名。
5)from 模块名 import 功能名 as 别名(设置功能别名)
这种方式允许为导入的功能指定一个别名,方便在代码中使用更短的名字来引用该功能。
- 特点:
- 给某个具体的功能起一个别名,便于在代码种使用。
- 不需要使用模块名作为前缀,直接调用别名即可。
- 适用于当功能名较长或容易与其它名称冲突时。
- 使用示例:
from datetime import datetime as dt
print(dt.now()) # 输出当前时间
注意: 设置别名后,不能再使用原有的功能名。
1.4 模块的搜索目录
当使用 import
语句导入模块时,默认情况下会按照如下顺序进行模块查找:
- 执行 python 文件的当前项目目录;
- 环境变量
PYTHONPATH
; - python 解释器安装目录。
当我们不确定有哪些目录的时候,我们可以 sys.path
查看全量的目录。如下所示:
>>> import sys
>>> sys.path
['', 'C:\\Users\\lenovo\\AppData\\Local\\Programs\\Python\\Python310\\python310.zip', 'C:\\Users\\lenovo\\AppData\\Local\\Programs\\Python\\Python310\\DLLs', 'C:\\Users\\lenovo\\AppData\\Local\\Programs\\Python\\Python310\\lib', 'C:\\Users\\lenovo\\AppData\\Local\\Programs\\Python\\Python310', 'C:\\Users\\lenovo\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages']
1.5 如何自定义模块
自定义模块的作用:
将相关的代码编写在一个独立的文件中,并命名为 “模块名.py”,这样就可以导入到程序中使用。
注意:自行创建的模块名不能与 Python 自带的标准库中的模块名重名。
举个例子:
- 创建一个模块文件 prime.py,实现素数判断,代码如下:
def fun_prime(num):
if num < 2:
print('请输入大于2的正整数')
else:
for i in range(2, num):
if num % i == 0:
return 0
else:
return 1
新建一个 python 文件导入上述模块,实现 100 以内的素数判断输出。代码如下:
import prime
for i in range(2, 100):
if prime.fun_prime(i) == 1:
print(i, end=' ')
执行结果如下:

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
自定义模块中的功能测试:
- 作用:编写完自定义模块后,最好在模块内部对代码进行测试,以防出现问题。
- 魔法方法:
__name__
,每个模块中都会有一个字符串变量,记录模块名称,随着运行页面的不同,返回值结果也不相同。 - 当前页面执行:返回值为
__main__
。
# 功能函数
def fun_prime(num):
if num < 2:
print('请输入大于2的正整数')
else:
for i in range(2, num):
if num % i == 0:
return 0
else:
return 1
# 测试代码
if __name__ == '__main__':
if fun_prime(5) == 1:
print('程序正常')
else:
print(