《案例学Python(进阶篇)》循序渐进地讲解了使用Python语言开发常见项目程序的知识,通过典型的项目实例讲解了Python在实践中的具体用法。本书共分16章,内容包括初级游戏项目实战、Web网站开发实战、数据可视化分析实战、网络爬虫实战、GUI桌面开发实战、多媒体应用开发实战、游戏项目开发实战、办公文件处理实战、网络应用开发实战、图像视觉处理实战、机器学习实战、AI智能问答系统、姿势预测器、大型RPG类游戏仿《暗黑破坏神》、图书商城系统、财经数据可视化分析系统。
《案例学Python(进阶篇)》中的项目经典而全面,几乎涵盖了Python语言所有可以实现的项目,不但适合初学Python的人员阅读,也适合计算机相关专业的师生阅读,而且还可供有经验的开发人员查阅和参考。
《案例学Python(进阶篇)》通过典型的项目案例详细讲解了Python在实践中的具体用法,案例涵盖了Python语言应用的大部分领域,主要包括游戏开发、Web网站开发、数据可视化开发、网络爬虫开发、GUI桌面开发、多媒体开发、办公自动化开发、图像视觉开发、机器学习开发、深度学习开发等。
随着人工智能和大数据的蓬勃发展,Python将会得到越来越多开发者的喜爱和应用。因为Python语法简单,学习速度快,大家可以用更短的时间掌握这门语言。因此,身边有很多朋友都开始使用Python语言进行开发。正是因为Python是一门如此受欢迎的编程语言,所以笔者精心编写了本书,希望让更多的人掌握这门优秀的编程语言。2023年初,ChatGPT 4震惊全世界,其应用端建议使用Python语言进行开发,Python语言的应用领域将会越来越广。
本书特色
(1) 案例多而全面
书中案例丰富,几乎涵盖了Python语言开发的大部分领域,如:游戏开发、Web网站开发、数据可视化、网络爬虫、办公自动化、GUI桌面开发、多媒体应用、图像视觉、机器学习、深度学习等。
(2) 案例经典,讲解细致
本书中的项目案例个个经典,详细讲解了每个案例的实现过程,让读者能够看懂并掌握每一个知识点。
(3) 提供在线技术支持,解决自学者的痛点
对于自学编程的人来说,最大的痛点是遇到问题时无人可问。在购买本书后,读者将会获取本书创作团队的技术支持,可以在线获得一对一辅导服务,快速解答您在学习中遇到的问题。此外,我们还会定期进行视频授课,让您切身体会到和众多志同道合的朋友们一起学习编程是一件快乐的事情。
(4) 配套资源丰富,包含视频、PPT、源代码
书中每一章均提供了网络视频教学,这些视频能够帮助初学者快速入门,增强学习的信心,从而快速理解所学知识。读者可通过扫描每章二级标题下的二维码,获取案例视频资源,既可在线观看也可以下载到本地学习。此外,本书的配套学习资源中还提供了全书案例的源代码,案例源代码读者可通过扫描下方的二维码获取。
本书读者对象
初学编程的自学者 ? 编程爱好者
大、中专院校的教师和学生 ? 相关培训机构的教师和学员
毕业设计的学生 初级和中级程序开发人员
软件测试人员
致谢
在写作本书的过程中得到了家人和朋友的鼓励,十分感谢他们给予我的巨大支持。从开始写作到最终出版,得到了清华大学出版社编辑的支持和辅导,正是在各位编辑的辛苦努力下才使得本书能够出版。本人水平毕竟有限,书中难免存在疏漏之处,诚请读者提出意见或建议,以便修订并使之更臻完善。最后感谢读者购买本书,希望本书能成为读者编程路上的领航者,祝读者阅读快乐!
编 者
张学建,中国海洋大学计算机博士,资深软件开发工程师和架构师,现在就职于北京百度研发中心,从事百度自动驾驶系统的架构和开发工作。曾经在谷歌市场中发布过多款著名的应用软件,这些应用软件在谷歌市场上取得了骄人的销售战绩。 另外,还精通C#、Java、C 和C语言等主流编程语言。业余期间,曾经在国内主流期刊中发表过多篇通信领域的著名论文。
第1章 初级游戏项目实战 1
1.1 猜数游戏 2
1.1.1 使用条件语句 2
1.1.2 使用for循环语句 2
1.1.3 具体实现 3
1.2 龙的世界 4
1.2.1 使用while循环语句 4
1.2.2 使用函数 5
1.2.3 实现《龙的世界》游戏 6
1.3 黑白棋游戏 7
1.3.1 笛卡尔坐标系 7
1.3.2 实例介绍 9
1.3.3 具体实现 9
1.4 益智类游戏:俄罗斯方块 15
1.4.1 规划需要的图形 15
1.4.2 具体实现 15
第2章 Web网站开发实战 23
2.1 会员登录验证系统 24
2.1.1 简易用户登录验证系统 24
2.1.2 使用模块auth实现登录验证系统 27
2.1.3 使用百度账户实现用户登录系统 32
2.2 博客发布系统 37
2.2.1 系统设置 37
2.2.2 会员注册和登录验证模块 38
2.2.3 博客发布模块 42
第3章 数据可视化分析实战 45
3.1 可视化分析SQLite中的数据 46
3.1.1 创建数据库 46
3.1.2 绘制统计图 47
3.2 可视化统计显示某网店各类口罩的销量 49
3.2.1 准备CSV文件 49
3.2.2 可视化CSV文件中的数据 50
3.3 数据挖掘:可视化处理文本情感分析数据 51
3.3.1 准备CSV文件 51
3.3.2 可视化两个剧本的情感分析数据 52
3.4 使用热力图可视化展示某城市的房价信息 55
3.4.1 准备数据 56
3.4.2 使用热力图可视化展示信息 56
3.5 Scikit-Learn聚类分析并可视化处理 59
3.5.1 准备饼状图 59
3.5.2 聚类处理 59
3.5.3 生成统计柱状图 60
3.6 将Excel文件中的地址信息可视化为交通热力图 61
3.6.1 将地址转换为JS格式 61
3.6.2 将JS地址转换为坐标 62
3.6.3 在地图中显示地址的热力信息 64
第4章 网络爬虫实战 65
4.1 绘制比特币和以太币的价格走势图 66
4.1.1 抓取数据 66
4.1.2 绘制BTC/美元价格曲线 66
4.1.3 绘制BTC和ETH的历史价格曲线图 67
4.2 热门电影信息数据可视化 68
4.2.1 创建MySQL数据库 69
4.2.2 抓取并分析电影数据 71
4.3 桌面壁纸抓取系统 74
4.3.1 创建项目 74
4.3.2 系统设置 74
4.3.3 创建数据库 74
4.3.4 声明需要格式化的字段 77
4.3.5 实现保存功能的类 77
4.3.6 实现具体的爬虫 79
第5章 GUI桌面开发实战 83
5.1 创建一个英尺/米转换器 84
5.1.1 具体实现 84
5.1.2 代码解析 85
5.2 制作一个交通标记指示牌 86
5.2.1 实例介绍 86
5.2.2 具体实现 86
5.3 GUI版的Minecraft游戏 88
5.3.1 项目规划 88
5.3.2 具体实现 89
5.4 图书管理系统 95
5.4.1 数据库操作 95
5.4.2 GUI实现 96
第6章 多媒体应用开发实战 99
6.1 简易播放器 100
6.1.1 使用模块audioop播放指定的音乐 100
6.1.2 使用模块wave读取和写入WAV文件 102
6.2 三款音乐播放器 103
6.2.1 基于模块tkinter开发的音乐播放器 103
6.2.2 开发网易云音乐播放器 105
6.2.3 开发一个MP3播放器 109
6.3 多媒体剪辑 114
6.3.1 MP3文件编辑器 114
6.3.2 批量设置视频文件的封面图片 121
第7章 游戏项目开发实战 129
7.1 贪吃蛇游戏 130
7.1.1 普通版的贪吃蛇游戏 130
7.1.2 AI版的贪吃蛇游戏 134
7.1.3 Cocos2d-Python版本的贪吃蛇游戏 138
7.2 使用Panda3D开发3D游戏 142
7.2.1 迷宫中的小球游戏 142
7.2.2 飞船大作战游戏 146
第8章 办公文件处理实战 149
8.1 处理Office文件 150
8.1.1 使用模块openpyxl读取Excel文件 150
8.1.2 在指定Excel文件中检索某关键字 152
8.1.3 将数据导入Excel文件并生成图表 153
8.1.4 获取Excel文件中的数据信息 154
8.1.5 将数据分别导入到Excel文件和SQLite数据库 156
8.1.6 创建一个Word文档 157
8.1.7 向Word文档中插入指定样式的段落 157
8.1.8 获取Word文档中的文本样式名称和每个样式的文字数目 159
8.1.9 获取Word文档中表格的内容 159
8.1.10 创建Word表格并合并 里面的单元格 160
8.1.11 自定义Word文件的样式 161
8.1.12 设置Excel表格的样式 162
8.1.13 向Excel文件中插入图像 164
8.1.14 向Excel文件中插入数据 并绘制柱状图 165
8.1.15 向Excel文件中插入数据 并绘制散点图 167
8.1.16 向Excel文件中插入数据 并绘制柱状图和饼状图 168
8.2 PDF文件处理实战 170
8.2.1 将PDF文件中的内容转换为TEXT文本 171
8.2.2 解析某个在线PDF文件的内容 173
8.2.3 将两个PDF文件合并为一个PDF文件 176
8.2.4 分别在PDF文件和PNG文件中绘制饼状图 177
8.2.5 在PDF文件中分别生成条形图和二维码 178
第9章 网络应用开发实战 181
9.1 收发电子邮件 182
9.1.1 获取邮箱中最新两封邮件的主题和发件人 182
9.1.2 向指定邮箱发送邮件 183
9.1.3 发送带附件功能的邮件 184
9.1.4 Web版邮件发送系统 185
9.2 网页计数器 187
9.2.1 使用数据库保存统计数据 187
9.2.2 使用第三方库实现访问计数器 190
9.3 Ajax上传和下载系统 195
9.3.1 实现文件上传功能 195
9.3.2 实现文件下载功能 200
第10章 图像视觉处理实战 203
10.1 智能车牌识别系统 204
10.1.1 系统介绍 204
10.1.2 通用程序 204
10.1.3 主程序 208
10.2 人脸检测系统 210
10.2.1 检测人脸眼睛的状态 210
10.2.2 模糊处理人脸 211
10.2.3 检测两张脸是否匹配 213
10.2.4 识别视频中的人脸 214
10.2.5 网页版人脸识别器 216
10.3 Scikit-Learn和人脸识别 217
10.3.1 SVM算法人脸识别 217
10.3.2 KNN算法人脸识别 218
第11章 机器学习实战 223
11.1 汽车油耗预测实战(使用神经网络实现分类) 224
11.1.1 准备数据 224
11.1.2 创建网络模型 227
11.1.3 训练和测试模型 228
11.2 图像分类器 230
11.2.1 准备数据集 230
11.2.2 创建数据集 231
11.2.3 配置数据集 233
11.2.4 创建模型 234
11.2.5 编译模型 234
11.2.6 训练模型 235
11.2.7 可视化训练结果 235
11.2.8 过拟合处理:数据增强 236
11.2.9 过拟合处理:将Dropout引入网络 237
11.2.10 重新编译和训练模型 238
11.2.11 预测新数据 241
11.3 智能翻译系统 242
11.3.1 下载和准备数据集 242
11.3.2 创建数据集 245
11.3.3 编写编码器(encoder)和解码器(decoder)模型 246
11.3.4 训练 249
11.3.5 翻译 252
第12章 综合实战:AI智能问答系统 255
12.1 技术架构介绍 256
12.1.1 TensorFlow.js 256
12.1.2 SQuAD 2.0 259
12.1.3 BERT 260
12.1.4 知识蒸馏 260
12.2 具体实现 263
12.2.1 编写HTML文件 263
12.2.2 脚本处理 264
12.2.3 加载训练模型 264
12.2.4 查询处理 264
12.2.5 文章处理 266
12.2.6 加载处理 266
12.2.7 寻找答案 267
12.2.8 提取最佳答案 268
12.2.9 将答案转换为文本 269
12.3 运行调试 270
第13章 综合实战:姿势预测器 273
13.1 系统介绍 274
13.2 准备模型 274
13.2.1 身体部位监测点说明 275
13.2.2 导入TensorFlow Lite模型 275
13.3 Android姿势预测器 276
13.3.1 准备工作 276
13.3.2 页面布局 278
13.3.3 实现主Activity 278
13.3.4 图像处理 280
13.3.5 姿势识别 282
第14章 综合实战:大型RPG游戏仿《暗黑破坏神》 285
14.1 RPG和《暗黑破坏神》介绍 286
14.1.1 RPG简介 286
14.1.2 《暗黑破坏神》系列游戏简介 286
14.2 项目介绍 287
14.2.1 游戏特色 287
14.2.2 模块划分 288
14.3 数据模块 288
14.3.1 Item数据 289
14.3.2 Enemy数据 290
14.3.3 Attack数据 291
14.3.4 Skill数据 291
14.3.5 玩家处理 292
14.4 系统主程序 297
第15章 综合实战:图书商城系统 305
15.1 功能需求分析 306
15.2 准备工作 307
15.2.1 用到的库 307
15.2.2 准备Vue环境 308
15.2.3 创建应用 308
15.2.4 系统配置 309
15.3 设计数据库 312
15.3.1 为users应用创建Model 模型 312
15.3.2 为goods应用创建Model 模型 314
15.3.3 为trade应用创建Model 模型 318
15.3.4 为user_operation应用创建Model模型 320
15.3.5 生成数据库表 322
15.4 使用Restful API 322
15.4.1 商品列表序列化 323
15.4.2 在前端展示左侧分类、排序、商品列表和分页 330
15.5 登录认证 332
15.5.1 使用DRF Token认证 332
15.5.2 使用JWT认证 334
15.5.3 微博账户登录 337
15.5.4 social-app-django集成第三方登录 341
15.6 支付宝支付 344
15.6.1 配置支付宝的沙箱环境 344
15.6.2 编写程序 347
15.7 测试程序 355
第16章 综合实战:财经数据可视化分析系统 359
16.1 爬取股票实时涨幅榜信息 360
16.1.1 准备Selenium环境 360
16.1.2 爬取数据 360
16.1.3 获取指定股票所属行业 信息 362
16.1.4 获取涨幅榜和跌幅榜信息 362
16.1.5 保存涨幅榜前10名和跌幅榜 前10名股票数据到Excel文件 364
16.2 AI选股系统 366
16.2.1 准备TuShare 366
16.2.2 跟踪热点板块 366
16.2.3 数据建模和评估分析 378