库就是别人已经写好的代码,我们可以直接拿来使用。
一门编程语言能否流行,一方面取决于语法是否简单易用、便于学习;另一方面取决于生态是否完备。这里所说的**"生态"**,就是指这门语言是否拥有足够丰富的库,用来应对各类开发场景。实际开发中,不会所有代码都从零手写,而是充分利用现成的库,以此简化开发流程。
按照库的来源,大致可以分为两大类:
- **标准库:**Python 自带的库,只要安装好 Python 环境,就可以直接导入使用,无需额外安装。
- **第三方库:**由其他开发者编写实现的库,想要使用,需要单独下载安装。 我们自己也可以编写代码,打包发布成第三方库,供其他人下载使用。
一.标准库
1.认识标准库
Python 自身内置了非常丰富的库.
在 Python 官方文档上可以看到这些库的内容.
The Python Standard Library --- Python 3.10.21 documentation
简单来说,Python 标准库主要包含这些部分:
- 内置函数(如 print、input 等)
- 内置类型(int、str、bool、list、dict 等类型自带的操作方法)
- 文本处理
- 时间日期处理
- 数学计算
- 文件与目录操作
- 数据存储(数据库操作、数据序列化等)
- 加密解密
- 操作系统相关功能
- 并发编程相关(多进程、多线程、协程、异步等)
- 网络编程相关 多媒体相关(音频处理、视频处理等)
- 图形化界面相关
- ......
我们不需要把所有库的内容都背下来,只需要大致了解它们具备哪些能力,等到开发需要的时候,能够查找对应的库和用法就可以。
2.使用 import 导入模块
使用 import 可以导入标准库的一个模块。
python
import [模块名]
- 所谓 "模块" , 其实就是一个单独的 .py 文件.
- 使用 import 语句可以把这个外部的 .py 文件导入到当前 .py 文件中, 并执行其中的代码.
3.日期计算(代码示例)
输入任意的两个日期,计算两个日期之间隔了多少天。
- 使用 import 语句导入标准库的 datetime 模块
- 使用 datetime.datetime 构造两个日期,参数使用 "年,月,日" 这样的格式。
- 两个日期对象相减,即可得到日期的差值。






想要了解更多关于 datetime 的更多操作,可以参考官方文档:
datetime --- Basic date and time types --- Python 3.14.7 documentation
4.字符串操作(代码示例)
字符串是 Python 的内置类型,字符串的很多方法不需要导入额外的模块,即可直接使用。
(1) 剑指offer 58, 翻转单词顺序
题目链接:

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"。
- 使用 str 的 split 方法进行字符串切分, 指定 空格 为分隔符. 返回结果是一个列表.
- 使用列表的 reverse 方法进行逆序.
- 使用 str 的 join 方法进行字符串拼接. 把列表中的内容进行合并
python
def reverseWords(s):
tokens = s.split()
tokens.reverse()
return ' '.join(tokens)
print(reverseWords('I am a student.'))
(2)leetcode 796 ------ 旋转字符串
题目链接:796. 旋转字符串 - 力扣(LeetCode)

给定两个字符串, s 和 goal。如果在若干次旋转操作之后,s 能变成 goal ,那么返回 true 。
s 的 旋转操作 就是将 s 最左边的字符移动到最右边。
例如, 若 s = 'abcde',在旋转一次之后结果就是'bcdea' 。
- 使用 len 求字符串的长度. 如果长度不相同, 则一定不能旋转得到.
- 将 s 和 自己 进行拼接, 然后直接使用 in 方法来判定 goal 是否是 s + s 的子串.
python
def rotateString(s, goal):
return len(s) == len(goal) and goal in s + s
print(rotateString('abcde', 'cdeab'))
(3)leetcode 2255 ------ 统计是给定字符串前缀的字符串数目
题目链接:2255. 统计是给定字符串前缀的字符串数目 - 力扣(LeetCode)

给你一个字符串数组 words 和一个字符串 s ,其中 wordsi 和 s 只包含 小写英文字母 。
请你返回 words 中是字符串 s 前缀 的 字符串数目 。
一个字符串的 前缀 是出现在字符串开头的子字符串。子字符串 是一个字符串中的连续一段字符序列。
- 依次遍历 words 中的字符串
- 直接使用字符串的 startswith 方法即可判定当前字符串是否是 s 的前缀.
python
def countPrefixes(words, s):
res = 0 # 符合要求字符串个数
for word in words:
if s.startswith(word):
res += 1
return res
print(countPrefixes(["a","b","c","ab","bc","abc"], "abc"))
想更了解于字符串的更多操作, 参考官方文档Built-in Types --- Python 3.14.7 documentation
(4)文件查找工具(代码示例)
指定一个待搜索路径, 同时指定一个待搜索的关键字.
在待搜索路径中查找是否文件名中包含这个关键字.
- 使用 os.walk 即可实现目录的递归遍历.
- os.walk 返回一个三元组, 分别是 当前路径 , 当前路径下包含的目录名 (多个), 当前路径下包含的文件名 (多个)




os.walk 每次调用会自动对子目录做递归遍历,我们只需要配合循环,就能拿到目录下全部文件与子目录的路径。
想要知道更多关于 os 模块的更多操作,参考官方文档:os --- Miscellaneous operating system interfaces --- Python 3.14.7 documentation
二.第三方库
1.认识第三方库
第三方库就是别人已经实现好了的库, 我们可以拿过来直接使用.
虽然标准库已经很强大了, 但是终究是有限的. 而第三方库可以视为是集合了全世界 Python 程序猿的智慧, 可以说是几乎无穷无尽.
问题来了, 当我们遇到一个需求场景的时候, 如何知道, 该使用哪个第三方库呢?
就需要用到下面几个网站了:

当我们确定了该使用哪个第三方库之后, 就可以使用 pip 来安装第三方库了.
2.使用 pip
pip 是 Python 内置的包管理器
所谓 包管理器 就类似于我们平时使用的手机 app 应用商店一样.
第三方库有很多, 是不同的人, 不同的组织实现的. 为了方便大家整理, Python 官方提供了一个网站PyPI PyPI · The Python Package Index, 来收集第三方库.
其他大佬写好的第三方库也会申请上传到 PyPI 上.
这个时候就可以方便的使用 pip 工具来下载 PyPI 上的库了.
pip 在我们安装 Python 的时候就已经内置了. 无需额外安装.
pip 是一个可执行程序, 就在 Python 的安装目录中.
打开 cmd, 直接输入 pip. 如果显示以下帮助信息, 说明 pip 已经准备就绪.

如果最开始按照要求在安装 Python 的时候勾选了:

那么 pip 就是默认可用的.
如果提示
'pip' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
则说明没有正确的把 pip 加入到 PATH 中, 可以手动把 pip 所在的路径加入到 PATH 环境变量中. (参考 windows环境下面配置pip环境变量 - 简书)或者卸载重装 Python, 记得勾上上述选项, 也许是更简单的办法.
使用以下命令, 即可安装第三方库
python
pip install [库名]
注意:这个命令需要从网络上下载,使用时要保证网络畅通。安装成功后,即可使用 import 导入相关模块,即可进行使用。
如果使用 pip 安装完第三方库之后,在 PyCharm 中仍然提示找不到对应的模块,则检查 Settings -> Project -> Python Interpreter,看当前 Python 解释器设置的是否正确。(如果一个机器上安装了多个版本的 Python,容易出现这种情况)
3.生成二维码(代码示例)
所谓二维码本质上就是用黑白点阵来存储一段字符串。我们日常使用的二维码,内部存储的大多是一个 URL 地址,扫码之后就会自动跳转访问这个地址,打开对应的网页。实际上,任意字符串都可以被生成一张二维码图片。
(1) 通过搜索引擎, 确定使用哪个库

得到情报,qrcode 这个库可以用来生成二维码。
(2)查看 qrcode 文档
在 PyPI 上搜索 qrcode:

点击则进入 qrcode 的详情页.
文档开头描述了如何安装 qrcode

页面中央位置描述了 qrcode 库的使用方法:

(3) 使用 pip 安装
在终端输入命令:
python
pip install qrcode[pil]
注意: pip 安装的时候可能会有警告, 提示使用的 pip 版本太低. 这个警告我们不必处理, 不影响我们正常使用.

我之前已经安装好了,这个是安装好的结果显示
(4)编写代码
按照文档给出的示例,模仿一段代码:


运行完毕后得到结果如下:

使用微信或者其他工具扫码,即可看到二维码内容。
4.操作 Excel(代码示例)
读取 excel 可以使用 xlrd 模块,文档地址:xlrd --- xlrd 2.0.1 documentation
修改 excel 可以使用 xlwt 模块,文档地址:xlwt documentation --- xlwt 1.3.0 documentation
此处以 xlrd 为例,演示 Excel 的基本操作。
需求有如下 Excel 表格 d:/test.xlsx

求 100 班的同学的平均分.
虽然 Excel 自身支持很强大的功能,也可以求和、求平均值。但是如果是稍微复杂的需求,操作起来可能就没那么方便了。
(1)安装 xlrd
python
pip install xlrd==1.2.0

注意 :此处要指定版本号安装. 如果不指定版本号, 则安装最新版. 最新版里删除了对 xlsx 格式文件的支持。
(2)编写代码
- 使用 open_workbook 方法打开一个 Excel 文件。
- 使用 xlsx.sheet_by_index(0) 获取到 0 号标签页。
- 使用 table.nrows 获取到表格的行数。
- 使用 table.cell_value(row, col) 获取到表格中 row,col 位置的元素值。

结果显示如下:

5.程序员鼓励师(代码示例)
监听键盘按键,每按键 10 下就自动播放一个音频,鼓励一下辛苦搬砖的每一个程序员。
(1) 安装第三方依赖
pynput 用于监听键盘按键。(注意版本不要用最新)
playsound 用于播放音频。
python
pip install pynput==1.6.8
pip install playsound==1.2.2


(2)准备音频文件
此处准备了三个mp3 放到和 py 代码同级目录中.

(3)编写代码
- 使用from import 的格式直接导入模块中的指定对象 / 函数。
- 使用 keyboard.Listener监听键盘按键,其中 on_release 会在释放按键时被调用。
- 使用listener.start启动监听器. 为了防止程序直接退出, 使用 listener.join 让程序等待用户按键。
- 使用 count 计数,每隔 10 次,调用 playsound播放音频文件。

6.学生管理系统(综合案例)
(1)需求说明
实现一个命令行版本的学生管理系统
功能:
- 新增学生
- 显示学生
- 查找学生
- 删除学生
- 存档到文件
(2)创建入口函数
- 使用一个全局列表 students 表示所有学生信息。
- 使用 menu 函数和用户交互,这是一个自定义函数。
- 使用 insert,show,find,delete 这几个自定义函数完成增删查操作。
- 使用 sys.exit 实现程序退出。

(3)实现菜单函数

(4)实现增删查操作
A. 新增学生

B. 显示学生

C. 查找学生

D. 删除学生

(5)加入存档读档
A. 约定存档格式
将存档文件放到 d:/record.txt 文件中,并且以行文本的方式来保存学生信息,格式如下:
python
学号\t名字\t性别\t班级
学号\t名字\t性别\t班级
学号\t名字\t性别\t班级
- 每个同学占一行。
- 每个同学的信息之间使用 \t 制表符进行分隔。
B. 实现存档函数

在 insert 和 delete 末尾,调用 save 函数进行存档。


C. 实现读档函数

在 main 函数开头的地方,调用 load 加载存档:

(6)演示测试过程




(7)打包成 exe 程序发布
当前虽然已经实现了一个管理系统,但是 .py 的文件只能在安装了 Python 环境的机器上运行。为了能够更好的部署到其他主机上,可以借助 pyinstaller 来把 Python 程序打包成 exe 程序。
A. 安装 pyinstaller
python
pip install pyinstaller

B. 打包程序
- -F 表示打包成单个 exe(不带动态库)
python
pyinstaller -F 文件名.py

打包完成之后:


此时就可以把这个程序拷贝给其他机器使用了,无需 Python 环境也可运行。
三.扩展
1.python cookbook
python 经典进阶书籍. 针对各种典型场景提供了一些解决方案.

2.awesome-python
整理了 Python 的一些非常实用的程序库.
3.500 Lines or Less
使用简短的 Python 代码来实现一些有意思的程序.