书籍详情
Python入门教程
作者:[美] 戴维·阿莫斯,[德] 达恩·巴德尔,[加] 乔安娜·雅布隆斯基,[美]
出版社:人民邮电出版社
出版时间:2023-07-01
ISBN:9787115617866
定价:¥109.80
购买这本书可以去
内容简介
本书由Real Python团队倾力编写,内容兼容Python 3.9版本。全书可分为两大部分,共18章。前半部分透彻地讲解现代Python编程的所有核心知识,后半部分带领你用Python构建实际的应用程序和脚本,解决有趣的现实问题。本书按照逻辑顺序介绍每个概念和语言特性,并以简短明了的代码示例进行解释和说明。你还可以通过书中的编码练习和项目巩固基础,通过交互式小测验检验自己的学习效果。本书内容已经过数以万计的Python爱好者、数据科学家和开发人员的实战检验,尤其适合零基础新人快速习得编写Python程序的实用技巧,培养对编程的热情。
作者简介
戴维·阿莫斯(David Amos) Real Python内容技术总监,Python社区活动PyCoder's Weekly组织者之一。 达恩·巴德尔(Dan Bader) Real Python总编辑,Python社区“意见领袖”,realpython.com学习平台的主要开发人员,另著有热销书《深入理解Python特性》。 乔安娜·雅布隆斯基(Joanna Jablonski) Real Python执行编辑,对谜题和规律的热爱、对细节的执着让她走上了翻译的职业道路。 弗莱彻·海斯勒(Fletcher Heisler) Real Python联合创始人,毕业于普林斯顿大学,2012年,他编写了这份Python教程的初稿,后由本书作者戴维·阿莫斯牵头重写。
目录
读者评价 iii
关于作者 v
序 vii
前言 xiii
第 1章 配置Python环境 1
1.1 有关Python版本的注意事项 1
1.2 Windows 2
1.2.1 安装Python 2
1.2.2 打开IDLE 3
1.3 macOS 4
1.3.1 安装Python 5
1.3.2 打开IDLE 6
1.4 Ubuntu Linux 7
1.4.1 安装Python 7
1.4.2 打开IDLE 8
第 2章 你的第 一个Python程序 10
2.1 编写Python程序 10
2.1.1 交互式窗口 10
2.1.2 编辑器窗口 12
2.2 搞点儿破坏 13
2.2.1 语法错误 13
2.2.2 运行时错误 14
2.2.3 巩固练习 15
2.3 创建变量 15
2.3.1 赋值运算符 15
2.3.2 变量命名的法则 16
2.3.3 直白的名字胜过简短的名字 17
2.3.4 Python变量命名约定 18
2.3.5 巩固练习 18
2.4 在交互式窗口中检查值 18
2.5 给自己留下有用的笔记 20
2.5.1 如何添加注释 20
2.5.2 约定与抱怨 21
2.6 总结和更多学习资源 22
第3章 字符串与字符串方法 23
3.1 什么是字符串 23
3.1.1 字符串类型 23
3.1.2 字符串字面量 24
3.1.3 确定字符串的长度 26
3.1.4 多行字符串 26
3.1.5 巩固练习 28
3.2 拼接、索引、切片 28
3.2.1 拼接字符串 28
3.2.2 索引字符串 29
3.2.3 字符串切片 30
3.2.4 字符串是不可变的 33
3.2.5 巩固练习 34
3.3 利用字符串方法操作字符串 34
3.3.1 大小写转换 34
3.3.2 移除字符串中的空白字符 35
3.3.3 判断字符串是否以某个字符串开头或结尾 36
3.3.4 字符串方法与不可变性 37
3.3.5 利用IDLE探索其他的字符串方法 37
3.3.6 巩固练习 38
3.4 与用户输入交互 38
3.5 挑战:分析用户输入 40
3.6 处理字符串和数字 40
3.6.1 在字符串上使用算术运算符 40
3.6.2 将字符串转换为数字 42
3.6.3 将数字转换为字符串 43
3.6.4 巩固练习 43
3.7 让输出语句更流畅 44
3.8 在字符串中查找字符串 45
3.9 挑战:把你的用户变成菁瑛骇氪 47
3.10 总结和更多学习资源 48
第4章 数字与数学 49
4.1 整数与浮点数 49
4.1.1 整数 49
4.1.2 浮点数 50
4.1.3 巩固练习 52
4.2 算术运算符和表达式 52
4.2.1 加法 52
4.2.2 减法 53
4.2.3 乘法 54
4.2.4 除法 54
4.2.5 整数除法 54
4.2.6 指数 55
4.2.7 求模运算符 56
4.2.8 算术表达式 57
4.3 挑战:计算用户输入的数据 58
4.4 让Python对你说谎 58
4.5 数学函数和数字方法 59
4.5.1 round()函数 59
4.5.2 abs()函数 61
4.5.3 pow()函数 61
4.5.4 检查浮点数是否为整数 62
4.5.5 巩固练习 62
4.6 改变数字的输出样式 63
4.7 复数 65
4.8 总结和更多学习资源 67
第5章 函数和循环 69
5.1 函数到底是什么 69
5.1.1 函数即值 69
5.1.2 Python如何执行函数 71
5.1.3 函数可能会产生副作用 72
5.2 编写自己的函数 72
5.2.1 函数的结构 73
5.2.2 调用用户定义函数 76
5.2.3 没有return语句的函数 77
5.2.4 为你的函数编写文档 77
5.2.5 巩固练习 78
5.3 挑战:温度转换 78
5.4 绕圈跑 79
5.4.1 while循环 79
5.4.2 for循环 81
5.4.3 嵌套循环 84
5.4.4 巩固练习 85
5.5 挑战:跟踪投资情况 85
5.6 理解Python的作用域 86
5.6.1 什么是作用域 86
5.6.2 作用域解析 87
5.6.3 LEGB原则 88
5.6.4 打破规则 88
5.7 总结和更多学习资源 89
第6章 寻找并修复代码中的bug 91
6.1 使用调试控制窗口 91
6.1.1 调试窗口:概览 92
6.1.2 Step按钮 93
6.1.3 断点和Go按钮 94
6.1.4 Over和Out 96
6.2 消除bug 96
6.2.1 第(1)步:猜测问题出在哪里 97
6.2.2 第(2)步:设置断点并检查代码 98
6.2.3 第(3)步:确定错误并尝试修复 99
6.2.4 第(4)步:重复第(1)步至第(3)步直到没有bug 100
6.2.5 寻找bug的其他方法 100
6.3 总结和更多学习资源 102
第7章 条件逻辑与流程控制 103
7.1 值的比较 103
7.2 来点儿逻辑 106
7.2.1 and关键字 106
7.2.2 or关键字 107
7.2.3 not关键字 109
7.2.4 构造更为复杂的表达式 110
7.2.5 巩固练习 111
7.3 控制程序的流向 112
7.3.1 if语句 112
7.3.2 else关键字 113
7.3.3 elif关键字 114
7.3.4 嵌套if语句 116
7.3.5 巩固练习 119
7.4 挑战:求因数 119
7.5 跳出模式 120
7.5.1 if语句与for循环 120
7.5.2 break 120
7.5.3 continue 121
7.5.4 forelse循环 122
7.5.5 巩固练习 123
7.6 从错误中恢复 123
7.6.1 异常动物园 123
7.6.2 try和except关键字 125
7.6.3 空except分句 126
7.6.4 巩固练习 126
7.7 事件模拟和概率计算 127
7.7.1 random模块 127
7.7.2 质地均匀的硬币 128
7.7.3 质地不均匀的硬币 129
7.7.4 巩固练习 130
7.8 挑战:模拟抛硬币实验 130
7.9 挑战:模拟选举 131
7.10 总结和更多学习资源 131
第8章 元组、列表、字典 133
8.1 元组:不可变序列 133
8.1.1 什么是元组 134
8.1.2 创建元组的方法 134
8.1.3 元组和字符串的相似之处 136
8.1.4 元组打包和解包 138
8.1.5 使用in检查元组是否包含某个值 139
8.1.6 从函数返回多个值 139
8.1.7 巩固练习 140
8.2 列表:可变序列 140
8.2.1 创建列表 140
8.2.2 基本操作 142
8.2.3 修改列表中的元素 143
8.2.4 增加和删除元素的列表方法 144
8.2.5 数字列表 147
8.2.6 列表推导式 148
8.2.7 巩固练习 149
8.3 列表与元组的嵌套、拷贝、排序 149
8.3.1 列表和元组的嵌套 149
8.3.2 拷贝列表 150
8.3.3 列表排序 152
8.3.4 巩固练习 153
8.4 挑战:列表的列表 153
8.5 挑战:打油诗 154
8.6 在字典中保存关系 155
8.6.1 什么是字典 155
8.6.2 创建字典 156
8.6.3 访问字典的值 157
8.6.4 添加和删除字典的值 158
8.6.5 检查字典中是否存在某个键 159
8.6.6 迭代字典 159
8.6.7 字典的键和不可变性 160
8.6.8 嵌套字典 161
8.6.9 巩固练习 162
8.7 挑战:首府环游 162
8.8 选择合适的数据结构 163
8.9 挑战:猫猫戴帽帽 164
8.10 总结和更多学习资源 164
第9章 面向对象编程 166
9.1 定义类 166
9.1.1 类和实例 167
9.1.2 如何定义类 167
9.2 实例化对象 169
9.2.1 类和实例属性 170
9.2.2 实例方法 171
9.2.3 巩固练习 173
9.3 从其他类继承 173
9.3.1 狗狗公园的例子 174
9.3.2 父类和子类 175
9.3.3 扩展父类的功能 176
9.3.4 巩固练习 178
9.4 挑战:建模农场 179
9.5 总结和更多学习资源 179
第 10章 模块和包 181
10.1 使用模块 181
10.1.1 创建模块 182
10.1.2 在模块中导入另一个模块 182
10.1.3 import语句的变体 184
10.1.4 为什么要用命名空间 186
10.1.5 巩固练习 188
10.2 使用包 188
10.2.1 创建包 188
10.2.2 导入包中的模块 189
10.2.3 从子包中导入模块 192
10.2.4 巩固练习 193
10.3 总结和更多学习资源 194
第 11章 文件输入与输出 195
11.1 文件和文件系统 195
11.1.1 文件的结构 195
11.1.2 文件系统 196
11.2 在Python中处理文件路径 198
11.2.1 创建Path对象 198
11.2.2 绝对路径和相对路径 200
11.2.3 访问文件路径分量 201
11.2.4 检查文件路径是否存在 203
11.2.5 巩固练习 203
11.3 常见文件系统操作 204
11.3.1 常见目录和文件 204
11.3.2 遍历文件夹内容 207
11.3.3 查找目录中的文件 208
11.3.4 使用**通配符递归匹配 211
11.3.5 移动、删除文件和文件夹 212
11.3.6 巩固练习 214
11.4 挑战:将所有图片文件移动到
一个新目录中 215
11.5 读写文件 215
11.5.1 什么是文件 215
11.5.2 理解文本文件 216
11.5.3 Python文件对象 217
11.5.4 从文件中读取数据 221
11.5.5 向文件写入数据 222
11.5.6 巩固练习 225
11.6 读写CSV数据 225
11.6.1 csv模块 226
11.6.2 巩固练习 231
11.7 挑战:创建高分榜 232
11.8 总结和更多学习资源 233
第 12章 使用pip安装包 234
12.1 使用pip安装第三方包 234
12.1.1 将pip更新至最新版本 237
12.1.2 列出所有已安装的包 238
12.1.3 安装包 238
12.1.4 展示包的详情 240
12.1.5 卸载包 241
12.2 第三方包的陷阱 242
12.3 总结和更多学习资源 243
第 13章 创建、修改PDF文件 244
13.1 从PDF文件中提取文本 244
13.1.1 打开PDF文件 245
13.1.2 提取页面中的文本 247
13.1.3 汇总 248
13.1.4 巩固练习 249
13.2 提取PDF中的页面 249
13.2.1 使用PdfFileWriter类 249
13.2.2 从PDF中提取单个页面 251
13.2.3 从PDF中提取多个页面 252
13.2.4 巩固练习 254
13.3 挑战:PdfFileSplitter类 254
13.4 拼接、合并PDF 255
13.4.1 使用PdfFileMerger类 255
13.4.2 使用.append()拼接PDF 255
13.4.3 使用.merge()合并PDF 257
13.4.4 巩固练习 259
13.5 旋转、裁剪PDF页面 259
13.5.1 旋转页面 259
13.5.2 裁剪页面 263
13.5.3 巩固练习 266
13.6 加密、解密PDF 266
13.6.1 加密PDF 267
13.6.2 解密PDF 268
13.6.3 巩固练习 269
13.7 挑战:整理PDF 269
13.8 从头创建PDF文件 269
13.8.1 安装reportlab 270
13.8.2 使用Canvas 类 270
13.8.3 设置页面尺寸 271
13.8.4 设置字体属性 272
13.9 总结和更多学习资源 274
第 14章 操作数据库 276
14.1 SQLite简介 276
14.1.1 SQLite基础 277
14.1.2 使用with管理数据库连接 278
14.1.3 操作数据库表 279
14.1.4 执行多条SQL语句 281
14.1.5 使用参数化语句避免安全问题 282
14.1.6 获得数据 283
14.1.7 巩固练习 284
14.2 操作其他SQL数据库的库 285
14.3 总结和更多学习资源 285
第 15章 和Web交互 287
15.1 抓取并解析网站中的文本 287
15.1.1 你的第 一个网络抓取器 288
15.1.2 使用字符串方法提取HTML中的文本 289
15.1.3 正则表达式入门 290
15.1.4 使用正则表达式提取HTML中的文本 293
15.1.5 巩固练习 294
15.2 使用HTML解析器抓取网站 294
15.2.1 安装Beautiful Soup 294
15.2.2 创建BeautifulSoup对象 295
15.2.3 使用BeautifulSoup对象 295
15.2.4 巩固练习 297
15.3 和HTML表单交互 298
15.3.1 安装MechanicalSoup 298
15.3.2 创建Browser对象 298
15.3.3 使用MechanicalSoup提交表单 299
15.3.4 巩固练习 302
15.4 和网站进行实时交互 302
15.5 总结和更多学习资源 304
第 16章 科学计算与绘图 306
16.1 使用NumPy操作矩阵 306
16.1.1 安装NumPy 307
16.1.2 创建NumPy array 308
16.1.3 数组运算 309
16.1.4 堆叠、重构数组 311
16.1.5 巩固练习 313
16.2 使用Matplotlib 绘制图像 313
16.2.1 安装Matplotlib 314
16.2.2 使用pyplot进行基本的图像绘制 314
16.2.3 在同一窗口中绘制多幅图像 317
16.2.4 为NumPy数组绘图 319
16.2.5 完善图像的格式 321
16.2.6 其他类型的图像 325
16.2.7 将图像保存为图片 328
16.2.8 与图像交互 329
16.2.9 巩固练习 329
16.3 总结和更多学习资源 329
第 17章 图形用户界面 331
17.1 使用EasyGUI添加GUI元素 331
17.1.1 安装EasyGUI 331
17.1.2 你的第 一个EasyGUI应用程序 332
17.1.3 EasyGUI的GUI元素库 334
17.1.4 优雅地退出程序 338
17.1.5 巩固练习 339
17.2 应用示例:PDF页面旋转程序 340
17.2.1 设计应用程序 340
17.2.2 实现设计 341
17.2.3 巩固练习 344
17.3 挑战:PDF页面提取应用程序 345
17.4 Tkinter简介 346
17.4.1 你的第 一个Tkinter应用程序 346
17.4.2 巩固练习 348
17.5 使用小组件 348
17.5.1 Label小组件 349
17.5.2 Button小组件 351
17.5.3 Entry小组件 352
17.5.4 Text小组件 355
17.5.5 将小组件分配给frame 361
17.5.6 使用relief调整frame的外观 364
17.5.7 小组件命名惯例 365
17.5.8 巩固练习 366
17.6 使用布局管理器控制布局 366
17.6.1 .pack()布局管理器 367
17.6.2 .place()布局管理器 370
17.6.3 .grid()布局管理器 371
17.6.4 巩固练习 379
17.7 让应用程序可交互 379
17.7.1 事件和事件处理器 380
17.7.2 .bind()方法 382
17.7.3 command属性 383
17.7.4 巩固练习 385
17.8 应用示例:温度转换器 386
17.9 应用示例:文本编辑器 389
17.10 挑战:诗人回归 396
17.11 总结和更多学习资源 397
第 18章 写在最后 399
18.1 Python开发者的免费周报 399
18.2 推荐图书:《深入理解Python特性》 400
18.3 Real Python视频课程库 400
18.4 致谢 401
版权声明 404
关于作者 v
序 vii
前言 xiii
第 1章 配置Python环境 1
1.1 有关Python版本的注意事项 1
1.2 Windows 2
1.2.1 安装Python 2
1.2.2 打开IDLE 3
1.3 macOS 4
1.3.1 安装Python 5
1.3.2 打开IDLE 6
1.4 Ubuntu Linux 7
1.4.1 安装Python 7
1.4.2 打开IDLE 8
第 2章 你的第 一个Python程序 10
2.1 编写Python程序 10
2.1.1 交互式窗口 10
2.1.2 编辑器窗口 12
2.2 搞点儿破坏 13
2.2.1 语法错误 13
2.2.2 运行时错误 14
2.2.3 巩固练习 15
2.3 创建变量 15
2.3.1 赋值运算符 15
2.3.2 变量命名的法则 16
2.3.3 直白的名字胜过简短的名字 17
2.3.4 Python变量命名约定 18
2.3.5 巩固练习 18
2.4 在交互式窗口中检查值 18
2.5 给自己留下有用的笔记 20
2.5.1 如何添加注释 20
2.5.2 约定与抱怨 21
2.6 总结和更多学习资源 22
第3章 字符串与字符串方法 23
3.1 什么是字符串 23
3.1.1 字符串类型 23
3.1.2 字符串字面量 24
3.1.3 确定字符串的长度 26
3.1.4 多行字符串 26
3.1.5 巩固练习 28
3.2 拼接、索引、切片 28
3.2.1 拼接字符串 28
3.2.2 索引字符串 29
3.2.3 字符串切片 30
3.2.4 字符串是不可变的 33
3.2.5 巩固练习 34
3.3 利用字符串方法操作字符串 34
3.3.1 大小写转换 34
3.3.2 移除字符串中的空白字符 35
3.3.3 判断字符串是否以某个字符串开头或结尾 36
3.3.4 字符串方法与不可变性 37
3.3.5 利用IDLE探索其他的字符串方法 37
3.3.6 巩固练习 38
3.4 与用户输入交互 38
3.5 挑战:分析用户输入 40
3.6 处理字符串和数字 40
3.6.1 在字符串上使用算术运算符 40
3.6.2 将字符串转换为数字 42
3.6.3 将数字转换为字符串 43
3.6.4 巩固练习 43
3.7 让输出语句更流畅 44
3.8 在字符串中查找字符串 45
3.9 挑战:把你的用户变成菁瑛骇氪 47
3.10 总结和更多学习资源 48
第4章 数字与数学 49
4.1 整数与浮点数 49
4.1.1 整数 49
4.1.2 浮点数 50
4.1.3 巩固练习 52
4.2 算术运算符和表达式 52
4.2.1 加法 52
4.2.2 减法 53
4.2.3 乘法 54
4.2.4 除法 54
4.2.5 整数除法 54
4.2.6 指数 55
4.2.7 求模运算符 56
4.2.8 算术表达式 57
4.3 挑战:计算用户输入的数据 58
4.4 让Python对你说谎 58
4.5 数学函数和数字方法 59
4.5.1 round()函数 59
4.5.2 abs()函数 61
4.5.3 pow()函数 61
4.5.4 检查浮点数是否为整数 62
4.5.5 巩固练习 62
4.6 改变数字的输出样式 63
4.7 复数 65
4.8 总结和更多学习资源 67
第5章 函数和循环 69
5.1 函数到底是什么 69
5.1.1 函数即值 69
5.1.2 Python如何执行函数 71
5.1.3 函数可能会产生副作用 72
5.2 编写自己的函数 72
5.2.1 函数的结构 73
5.2.2 调用用户定义函数 76
5.2.3 没有return语句的函数 77
5.2.4 为你的函数编写文档 77
5.2.5 巩固练习 78
5.3 挑战:温度转换 78
5.4 绕圈跑 79
5.4.1 while循环 79
5.4.2 for循环 81
5.4.3 嵌套循环 84
5.4.4 巩固练习 85
5.5 挑战:跟踪投资情况 85
5.6 理解Python的作用域 86
5.6.1 什么是作用域 86
5.6.2 作用域解析 87
5.6.3 LEGB原则 88
5.6.4 打破规则 88
5.7 总结和更多学习资源 89
第6章 寻找并修复代码中的bug 91
6.1 使用调试控制窗口 91
6.1.1 调试窗口:概览 92
6.1.2 Step按钮 93
6.1.3 断点和Go按钮 94
6.1.4 Over和Out 96
6.2 消除bug 96
6.2.1 第(1)步:猜测问题出在哪里 97
6.2.2 第(2)步:设置断点并检查代码 98
6.2.3 第(3)步:确定错误并尝试修复 99
6.2.4 第(4)步:重复第(1)步至第(3)步直到没有bug 100
6.2.5 寻找bug的其他方法 100
6.3 总结和更多学习资源 102
第7章 条件逻辑与流程控制 103
7.1 值的比较 103
7.2 来点儿逻辑 106
7.2.1 and关键字 106
7.2.2 or关键字 107
7.2.3 not关键字 109
7.2.4 构造更为复杂的表达式 110
7.2.5 巩固练习 111
7.3 控制程序的流向 112
7.3.1 if语句 112
7.3.2 else关键字 113
7.3.3 elif关键字 114
7.3.4 嵌套if语句 116
7.3.5 巩固练习 119
7.4 挑战:求因数 119
7.5 跳出模式 120
7.5.1 if语句与for循环 120
7.5.2 break 120
7.5.3 continue 121
7.5.4 forelse循环 122
7.5.5 巩固练习 123
7.6 从错误中恢复 123
7.6.1 异常动物园 123
7.6.2 try和except关键字 125
7.6.3 空except分句 126
7.6.4 巩固练习 126
7.7 事件模拟和概率计算 127
7.7.1 random模块 127
7.7.2 质地均匀的硬币 128
7.7.3 质地不均匀的硬币 129
7.7.4 巩固练习 130
7.8 挑战:模拟抛硬币实验 130
7.9 挑战:模拟选举 131
7.10 总结和更多学习资源 131
第8章 元组、列表、字典 133
8.1 元组:不可变序列 133
8.1.1 什么是元组 134
8.1.2 创建元组的方法 134
8.1.3 元组和字符串的相似之处 136
8.1.4 元组打包和解包 138
8.1.5 使用in检查元组是否包含某个值 139
8.1.6 从函数返回多个值 139
8.1.7 巩固练习 140
8.2 列表:可变序列 140
8.2.1 创建列表 140
8.2.2 基本操作 142
8.2.3 修改列表中的元素 143
8.2.4 增加和删除元素的列表方法 144
8.2.5 数字列表 147
8.2.6 列表推导式 148
8.2.7 巩固练习 149
8.3 列表与元组的嵌套、拷贝、排序 149
8.3.1 列表和元组的嵌套 149
8.3.2 拷贝列表 150
8.3.3 列表排序 152
8.3.4 巩固练习 153
8.4 挑战:列表的列表 153
8.5 挑战:打油诗 154
8.6 在字典中保存关系 155
8.6.1 什么是字典 155
8.6.2 创建字典 156
8.6.3 访问字典的值 157
8.6.4 添加和删除字典的值 158
8.6.5 检查字典中是否存在某个键 159
8.6.6 迭代字典 159
8.6.7 字典的键和不可变性 160
8.6.8 嵌套字典 161
8.6.9 巩固练习 162
8.7 挑战:首府环游 162
8.8 选择合适的数据结构 163
8.9 挑战:猫猫戴帽帽 164
8.10 总结和更多学习资源 164
第9章 面向对象编程 166
9.1 定义类 166
9.1.1 类和实例 167
9.1.2 如何定义类 167
9.2 实例化对象 169
9.2.1 类和实例属性 170
9.2.2 实例方法 171
9.2.3 巩固练习 173
9.3 从其他类继承 173
9.3.1 狗狗公园的例子 174
9.3.2 父类和子类 175
9.3.3 扩展父类的功能 176
9.3.4 巩固练习 178
9.4 挑战:建模农场 179
9.5 总结和更多学习资源 179
第 10章 模块和包 181
10.1 使用模块 181
10.1.1 创建模块 182
10.1.2 在模块中导入另一个模块 182
10.1.3 import语句的变体 184
10.1.4 为什么要用命名空间 186
10.1.5 巩固练习 188
10.2 使用包 188
10.2.1 创建包 188
10.2.2 导入包中的模块 189
10.2.3 从子包中导入模块 192
10.2.4 巩固练习 193
10.3 总结和更多学习资源 194
第 11章 文件输入与输出 195
11.1 文件和文件系统 195
11.1.1 文件的结构 195
11.1.2 文件系统 196
11.2 在Python中处理文件路径 198
11.2.1 创建Path对象 198
11.2.2 绝对路径和相对路径 200
11.2.3 访问文件路径分量 201
11.2.4 检查文件路径是否存在 203
11.2.5 巩固练习 203
11.3 常见文件系统操作 204
11.3.1 常见目录和文件 204
11.3.2 遍历文件夹内容 207
11.3.3 查找目录中的文件 208
11.3.4 使用**通配符递归匹配 211
11.3.5 移动、删除文件和文件夹 212
11.3.6 巩固练习 214
11.4 挑战:将所有图片文件移动到
一个新目录中 215
11.5 读写文件 215
11.5.1 什么是文件 215
11.5.2 理解文本文件 216
11.5.3 Python文件对象 217
11.5.4 从文件中读取数据 221
11.5.5 向文件写入数据 222
11.5.6 巩固练习 225
11.6 读写CSV数据 225
11.6.1 csv模块 226
11.6.2 巩固练习 231
11.7 挑战:创建高分榜 232
11.8 总结和更多学习资源 233
第 12章 使用pip安装包 234
12.1 使用pip安装第三方包 234
12.1.1 将pip更新至最新版本 237
12.1.2 列出所有已安装的包 238
12.1.3 安装包 238
12.1.4 展示包的详情 240
12.1.5 卸载包 241
12.2 第三方包的陷阱 242
12.3 总结和更多学习资源 243
第 13章 创建、修改PDF文件 244
13.1 从PDF文件中提取文本 244
13.1.1 打开PDF文件 245
13.1.2 提取页面中的文本 247
13.1.3 汇总 248
13.1.4 巩固练习 249
13.2 提取PDF中的页面 249
13.2.1 使用PdfFileWriter类 249
13.2.2 从PDF中提取单个页面 251
13.2.3 从PDF中提取多个页面 252
13.2.4 巩固练习 254
13.3 挑战:PdfFileSplitter类 254
13.4 拼接、合并PDF 255
13.4.1 使用PdfFileMerger类 255
13.4.2 使用.append()拼接PDF 255
13.4.3 使用.merge()合并PDF 257
13.4.4 巩固练习 259
13.5 旋转、裁剪PDF页面 259
13.5.1 旋转页面 259
13.5.2 裁剪页面 263
13.5.3 巩固练习 266
13.6 加密、解密PDF 266
13.6.1 加密PDF 267
13.6.2 解密PDF 268
13.6.3 巩固练习 269
13.7 挑战:整理PDF 269
13.8 从头创建PDF文件 269
13.8.1 安装reportlab 270
13.8.2 使用Canvas 类 270
13.8.3 设置页面尺寸 271
13.8.4 设置字体属性 272
13.9 总结和更多学习资源 274
第 14章 操作数据库 276
14.1 SQLite简介 276
14.1.1 SQLite基础 277
14.1.2 使用with管理数据库连接 278
14.1.3 操作数据库表 279
14.1.4 执行多条SQL语句 281
14.1.5 使用参数化语句避免安全问题 282
14.1.6 获得数据 283
14.1.7 巩固练习 284
14.2 操作其他SQL数据库的库 285
14.3 总结和更多学习资源 285
第 15章 和Web交互 287
15.1 抓取并解析网站中的文本 287
15.1.1 你的第 一个网络抓取器 288
15.1.2 使用字符串方法提取HTML中的文本 289
15.1.3 正则表达式入门 290
15.1.4 使用正则表达式提取HTML中的文本 293
15.1.5 巩固练习 294
15.2 使用HTML解析器抓取网站 294
15.2.1 安装Beautiful Soup 294
15.2.2 创建BeautifulSoup对象 295
15.2.3 使用BeautifulSoup对象 295
15.2.4 巩固练习 297
15.3 和HTML表单交互 298
15.3.1 安装MechanicalSoup 298
15.3.2 创建Browser对象 298
15.3.3 使用MechanicalSoup提交表单 299
15.3.4 巩固练习 302
15.4 和网站进行实时交互 302
15.5 总结和更多学习资源 304
第 16章 科学计算与绘图 306
16.1 使用NumPy操作矩阵 306
16.1.1 安装NumPy 307
16.1.2 创建NumPy array 308
16.1.3 数组运算 309
16.1.4 堆叠、重构数组 311
16.1.5 巩固练习 313
16.2 使用Matplotlib 绘制图像 313
16.2.1 安装Matplotlib 314
16.2.2 使用pyplot进行基本的图像绘制 314
16.2.3 在同一窗口中绘制多幅图像 317
16.2.4 为NumPy数组绘图 319
16.2.5 完善图像的格式 321
16.2.6 其他类型的图像 325
16.2.7 将图像保存为图片 328
16.2.8 与图像交互 329
16.2.9 巩固练习 329
16.3 总结和更多学习资源 329
第 17章 图形用户界面 331
17.1 使用EasyGUI添加GUI元素 331
17.1.1 安装EasyGUI 331
17.1.2 你的第 一个EasyGUI应用程序 332
17.1.3 EasyGUI的GUI元素库 334
17.1.4 优雅地退出程序 338
17.1.5 巩固练习 339
17.2 应用示例:PDF页面旋转程序 340
17.2.1 设计应用程序 340
17.2.2 实现设计 341
17.2.3 巩固练习 344
17.3 挑战:PDF页面提取应用程序 345
17.4 Tkinter简介 346
17.4.1 你的第 一个Tkinter应用程序 346
17.4.2 巩固练习 348
17.5 使用小组件 348
17.5.1 Label小组件 349
17.5.2 Button小组件 351
17.5.3 Entry小组件 352
17.5.4 Text小组件 355
17.5.5 将小组件分配给frame 361
17.5.6 使用relief调整frame的外观 364
17.5.7 小组件命名惯例 365
17.5.8 巩固练习 366
17.6 使用布局管理器控制布局 366
17.6.1 .pack()布局管理器 367
17.6.2 .place()布局管理器 370
17.6.3 .grid()布局管理器 371
17.6.4 巩固练习 379
17.7 让应用程序可交互 379
17.7.1 事件和事件处理器 380
17.7.2 .bind()方法 382
17.7.3 command属性 383
17.7.4 巩固练习 385
17.8 应用示例:温度转换器 386
17.9 应用示例:文本编辑器 389
17.10 挑战:诗人回归 396
17.11 总结和更多学习资源 397
第 18章 写在最后 399
18.1 Python开发者的免费周报 399
18.2 推荐图书:《深入理解Python特性》 400
18.3 Real Python视频课程库 400
18.4 致谢 401
版权声明 404
猜您喜欢