Python库使用全攻略:从入门到实战

一、库的分类与作用

库是预编写的代码集合,用于简化开发,分为两类:

  1. 标准库 :Python 自带,安装后直接可用(如datetime),覆盖文本处理、时间日期、文件操作等场景。
  2. 第三方库 :需额外安装(如qrcode),由开发者社区贡献,可实现更丰富的功能(如生成二维码、操作 Excel)。

二、标准库的使用

通过import [模块名]导入,示例:

  • datetime模块计算日期差:导入模块→构造日期对象→对象相减得到差值。

datetime

代码示例: 字符串操作

字符串是 Python 的内置类型, 字符串的很多方法不需要导入额外的模块, 即可直接使用.

1.剑指offer 58, 翻转单词顺序

https://leetcode.cn/problems/fan-zhuan-dan-ci-shun-xu-lcof/

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和 普通字母一样处理。

例如输入字符串"I am a student. ",则输出"student. a am I"。

  • 使用 str 的 split 方法进行字符串切分, 指定 空格 为分隔符. 返回结果是一个列表.
  • 使用列表的 reverse 方法进行逆序.
  • 使用 str 的 join 方法进行字符串拼接. 把列表中的内容进行合并.

三、第三方库的使用流程

  1. 确定库 :通过搜索引擎查找对应功能的库(如生成二维码用qrcode);
  2. 安装库 :用 Python 内置包管理器pip,执行pip install [库名](需联网);
  3. 导入使用 :安装后用import导入,按库文档编写代码。

Python 官方提供了一个网站 PyPI https://pypi.org/, 来收集第三方库.

打开 cmd, 直接输入 pip. 如果显示以下帮助信息, 说明 pip 已经准备就绪.

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

那么 pip 就是默认可用的.

如果提示'pip' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

则说明没有正确的把 pip 加入到 PATH 中, 可以手动把 pip 所在的路径加入到 PATH 环境变量中.

https://www.jianshu.com/p/1de0acf7185d

如果使用 pip 安装完第三方库之后, 在 PyCharm 中仍然提示找不到对应的模块, 则检查 Settings -> Project -> Python Interpreter , 看当前 Python 解释器设置的是否正确. (如果一个机器上安装了多个版本 的 Python, 容易出现这种情况).

1.代码示例: 生成二维码

(1) 通过搜索引擎, 确定使用哪个库

得到情报, qrcode 这个库, 可以用来生成二维码.

(2) 查看 qrcode 文档

在 PyPI 上搜索 qrcode

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

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

(3) 使用 pip 安装

pip install qrcode[pil]

注意: pip 安装的时候可能会有警告, 提示使用的 pip 版本太低. 这个警告不必处理, 不影响正常使用.

(4) 编写代码 按照文档给出的示例, 模仿一段代码.

使用微信或者其他工具扫码, 即可看到二维码内容. 所谓二维码, 本质上就是使用黑白点阵表示一个字符串. 我们日常使用的二维码内部一般是一个 URL, 扫码后会自动跳转到对应的地址, 从而打开一个网页.

2.代码示例: 操作 excel

读取 excel 可以使用 xlrd 模块. 文档地址: https://xlrd.readthedocs.io/en/latest/

修改 excel 可以使用 xlwt 模块. 文档地址:https://xlwt.readthedocs.io/en/latest/

此处以 xlrd 为例, 演示 excel 的基本操作.

需求 有如下 excel 表格 d:/test.xlsx

求 100 班的同学的平均分. 虽然 excel 自身支持很强大的功能, 也可以求和, 求平均值. 但是如果是稍微复杂的需求, 操作起来可能就没那么方便了

1.安装 xlrd

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 位置的元素值.
3.代码示例: "程序猿鼓励师"

监听键盘按键, 每按键 20 下, 就自动播放一个音频, 鼓励一下辛苦搬砖的自己.

1.安装第三方依赖

pynput 用于监听键盘按键. 注意版本不要用最新. playsound 用于播放音频.

2. 准备音频文件

此处准备了一个 ding.mp3 放到和 py 代码同级目录中.

3.编写代码

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

运行程序, 即可感受到效果.

4.改进代码

  • 使用 threading.Thread 引入多线程类.
  • 使用 Thread 的构造函数来构造一个线程.
  • target 表示线程要执行的任务, args 表示 target 中 要调用函数的参数.
  • 使用 Thread.start() 启动线程.

四、综合案例: 学生管理系统

需求说明 实现一个命令行版本的学生管理系统

功能:

  • 新增学生
  • 显示学生
  • 查找学生
  • 删除学生
  • 存档到文件

1.创建入口函数

  • 使用一个全局列表 students 表示所有学生信息.
  • 使用 menu 函数和用户交互. 这是一个自定义函数.
  • 使用 insert , show , find , delete 这几个自定义函数完成增删查操作
  • 使 用 sys.exit 实 现 程 序 退 出.

2.实 现 菜 单 函 数

3.实 现 增 删 查 操 作

3.1 新 增 学 生

3.2 显示学生

  1. 3查找学生

3.4 删除学生

加入存档读档

  1. 约定存档格式 约定存档文件放到 d:/record.txt 文件中.

并且以行文本的方式来保存学生信息. 格式如下:

  • 每个同学占一行.
  • 每个同学的信息之间使用 \t 制表符进行分隔.
  1. 实现存档函数

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

  1. 实现读档函数

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

复制代码
load()

打包成 exe 程序发布

当前虽然已经实现了一个管理系统, 但是 .py 的文件只能在安装了 Python 环境的机器上运行.

为了能够更好的部署到其他主机上, 可以借助 pyinstaller 来把 Python 程序打包成 exe 程序.

1. 安装 pyinstaller

复制代码
pip install pyinstaller

2.打包程序

注意: 如果提示找不到 pyinstaller 命令, 则需要重启一下 PyCharm. 稍等片刻, 很快打包完成.

此时就可以把这个程序拷贝给其他机器使用了. 无需 Python 环境即可运行.

相关推荐
qq_16014487几秒前
低成本高效学习路线图
学习
航Hang*1 分钟前
第七章:综合布线技术 —— 设备间子系统的设计与施工
网络·笔记·学习·期末·复习
耶夫斯计3 分钟前
【SQL_agent】基于LLM实现sql助理
数据库·python·sql·语言模型
vibag4 分钟前
RAG向量数据库
python·语言模型·langchain·大模型
kisshuan123965 分钟前
基于YOLO11改进的C3k2-AdditiveBlock实现命中检测与双重命中事件识别_1
python
好奇龙猫5 分钟前
【人工智能学习-AI-MIT公开课13.- 学习:遗传算法】
android·人工智能·学习
mg6686 分钟前
0基础开发学习python工具_____用 Python + Pygame 打造绚丽烟花秀 轻松上手体验
开发语言·python·学习·pygame
nervermore99016 分钟前
2.6 测试
python
航Hang*18 分钟前
第六章:综合布线技术 —— 干线子系统的设计与施工
网络·笔记·学习·期末·复习
EZ_Python24 分钟前
告别WPS会员!用Python自制电子发票批量打印排版工具
python·自动化