第1章Python基础知识 1
1.1 Python语言简介 1
1.2 Python语法基础 2
1.2.1 Python数据类型 2
1.2.2序列数据结构 4
1.2.3 Python控制语句 12
1.2.4 Python函数与模块 18
1.3 Python面向对象设计 22
1.3.1定义和使用类 22
1.3.2构造函数 23
1.3.3析构函数 24
1.3.4实例属性和类属性 24
1.3.5私有成员与公有成员 25
1.3.6方法 26
1.3.7类的继承 27
1.3.8多态 29
1.3.9面向对象应用案例——扑克牌发牌程序 31
1.4 Python图形界面设计 34
1.4.1创建Windows窗口 35
1.4.2几何布局管理器 35
1.4.3 Tkinter组件 39
1.4.4 Tkinter字体 49
1.4.5 Python事件处理 51
1.4.6图形界面设计应用案例——开发猜数字游戏 55
1.5 Python文件的使用 57
1.5.1打开/建立文件 57
1.5.2读取文本文件 59
1.5.3写文本文件 60
1.5.4文件内移动 62
1.5.5文件的关闭 63
1.5.6二进制文件的读/写 64
1.6 Python的第三方库 66
第2章 序列应用——猜单词游戏 67
2.1猜单词游戏功能介绍 67
2.2程序设计的思路 67
2.3关键技术——random模块 68
2.4程序设计的步骤 71
第3章 数据库应用——智力问答测试 73
3.1智力问答测试功能介绍 73
3.2程序设计的思路 73
3.3关键技术 74
3.3.1访问数据库的步骤 74
3.3.2创建数据库和表 75
3.3.3数据库的插入、更新和删除操作 76
3.3.4数据库表的查询操作 77
3.3.5数据库使用实例——学生通讯录 77
3.4程序设计的步骤 80
3.4.1生成试题库 80
3.4.2读取试题信息 81
3.4.3界面和逻辑设计 81
第4章 调用百度API应用——小小翻译器 83
4.1小小翻译器功能介绍 83
4.2程序设计的思路 83
4.3关键技术 84
4.3.1 urllib库简介 84
4.3.2 urllib库的基本使用 84
4.4程序设计的步骤 90
4.4.1设计界面 90
4.4.2使用百度翻译开放平台API 90
第5章 爬虫应用—校园网搜索引擎 95
5.1校园网搜索引擎功能分析 95
5.2校园网搜索引擎系统设计 95
5.3关键技术 98
5.3.1正则表达式 98
5.3.2中文分词 103
5.3.3安装和使用jieba 103
5.3.4为j ieba添加自定义词典 104
5.3.5文本分类的关键词提取 105
5.3.6 deque 106
5.4程序设计的步骤 107
5.4.1信息采集模块——网络爬虫的实现 107
5.4.2索引模块——建立倒排词表 111
5.4.3网页排名和搜索模块 113
第6章 爬虫应用——抓取百度图片 116
6.1程序功能介绍 116
6.2程序设计的思路 116
6.3关键技术 117
6.3.1图片文件下载到本地 117
6.3.2爬取指定网页中的图片 117
6.3.3 BeautifulSoup库概述 119
6.3.4用BeautifulSoup库操作解析HTML文档树 121
6.3.5 requests库的使用 125
6.4程序设计的步骤 133
6.4.1分析网页源代码和网页结构 133
6.4.2设计代码 136
第7章itchat应用——微信机器人 139
7.1 itchat功能介绍 139
7.2程序设计的思路 140
7.3关键技术 140
7.3.1安装itchat 140
7.3.2 itchat的登录微信 140
7.3.3 itchat的消息类型 141
7.3.4 itchat回复消息 143
7.3.5 itchat获取账号 145
7.3.6 itchat的一些简单应用 147
7.3.7 Python调用图灵机器人API实现简单的人机交互 150
7.4程序设计的步骤 152
7.5开发消息同步机器人 153
第8章 微信网页版协议应用——微信机器人 155
8.1微信网页版机器人功能介绍 155
8.2微信网页版机器人设计思路 155
8.2.1分析微信网页版API 155
8.2.2 API汇总 158
8.2.3其他说明 164
8.3程序设计的步骤 166
8.3.1微信网页版的运行流程 166
8.3.2程序目录 167
8.3.3微信网页版运行代码的实现 167
8.4扩展功能 170
8.4.1自动回复 170
8.4.2群发消息、定时发送消息、好友状态检测 173
8.4.3自动邀请好友加入群聊 175
第9章 图像处理——生成二维码和验证码 178
9.1二维码介绍 178
9.2二维码生成和解析关键技术 179
9.2.1 qrcode库的使用 179
9.2.2 PIL库的使用 182
9.3二维码生成和解析程序设计的步骤 184
9.3.1生成带有图标的二维码 184
9.3.2 Python解析二维码图片 186
9.4用Python生成验证码图片 186
第10章 益智游戏——连连看游戏 189
10.1连连看游戏介绍 189
10.2程序设计的思路 190
10.3关键技术 200
10.3.1图形绘制——Tinker的Canvas组件 200
10.3.2 Canvas上的图形对象 200
10.4程序设计的步骤 210
第11章 益智游戏——推箱子游戏 215
11.1推箱子游戏介绍 215
11.2程序设计的思路 216
11.3关键技术 217
11.4程序设计的步骤 218
第12章 娱乐游戏——两人麻将游戏 224
12.1麻将游戏介绍 224
12.1.1麻将术语 224
12.1.2牌数 224
12.2两人麻将游戏设计的思路 225
12.2.1素材图片 225
12.2.2游戏的逻辑实现 226
12.2.3碰/吃牌的判断 226
12.2.4和牌算法 227
12.2.5实现计算机智能出牌 231
12.3关键技术 233
12.3.1声音的播放 233
12.3.2返回对应位置的组件 233
12.3.3对保存麻将牌的列表排序 234
12.4两人麻将游戏设计的步骤 235
12.4.1设计麻将牌类 235
12.4.2设计游戏主程序 237
第13章 网络编程案例——基于TCP的在线聊天程序 247
13.1基于TCP的在线聊天程序简介 247
13.2关键技术 247
13.2.1互联网TCP/IP协议 247
13.2.2 IP协议和端口 248
13.2.3 TCP协议和UDP协议 249
13.2.4 Socket 249
13.2.5多线程编程 254
13.3在线聊天程序设计的步骤 256
13.3.1在线聊天程序的服务器端 256
13.3.2在线聊天程序的客户端 259
第14章 网络通信案例——基于UDP的网络五子棋游戏 263
14.1网络五子棋游戏简介 263
14.2五子棋游戏的设计思想 264
14.3关键技术 267
14.3.1 UDP编程 267
14.3.2自定义网络五子棋游戏的通信协议 269
14.4网络五子棋游戏程序设计的步骤 271
14.4.1服务器端程序设计的步骤 271
14.4.2客户端程序设计的步骤 276
第15章 益智游戏——中国象棋 281
15.1中国象棋介绍 281
15.2关键技术 282
15.3中国象棋的设计思路 284
15.4中国象棋实现的步骤 287
第16章娱乐游戏——人物拼图游戏 297
16.1人物拼图游戏介绍 297
16.2程序设计的思路 298
16.3关键技术 298
16.3.1复制和粘贴图像区域 298
16.3.2调整尺寸和旋转 298
16.3.3转换成灰度图像 299
16.3.4对像素进行操作 300
16.4程序设计的步骤 300
16.4.1 Python处理图片切割 300
16.4.2游戏的逻辑实现 302
第17章 基于Pygame的游戏设计 306
17.1 Pygame基础知识 306
17.1.1安装Pygame库 306
17.1.2 Pygame的模块 306
17.2 Pygame的使用 309
17.2.1 Pygame开发游戏的主要流程 309
17.2.2 Pygame的图像/图形绘制 311
17.2.3 Pygame的键盘和鼠标事件的处理 314
17.2.4 Pygame的字体使用 319
17.2.5 Pygame的声音播放 320
17.2.6 Pygame的精灵使用 321
17.3基于Pygame设计贪吃蛇游戏 326
17.4基于Pygame设计飞机大战游戏 333
17.4.1游戏角色 333
17.4.2游戏界面显示 336
17.4.3游戏的逻辑实现 338
第18章 机器学习案例——基于朴素贝叶斯算法的文本分类 343
18.1文本分类功能介绍 343
18.2程序设计的思路 343
18.3关键技术 344
18.3.1贝叶斯算法的理论基础 344
18.3.2朴素贝叶斯分类 346
18.3.3使用Python进行文本分类 348
18.4程序设计的步骤 348
18.4.1收集训练数据 348
18.4.2准备数据 349
18.4.3分析数据 349
18.4.4训练算法 350
18.4.5测试算法并改进 353
18.4.6使用算法进行文本分类 354
18.5使用朴素贝叶斯分类算法过滤垃圾邮件 355
18.5.1收集训练数据 355
18.5.2将文本文件解析为词向量 356
18.5.3使用朴素贝叶斯算法进行邮件分类 357
18.5.4改进算法 359
18.6使用Scikit-Learn库进行文本分类 360
18.6.1文本分类常用的类和函数 360
18.6.2案例实现 363
第19章 深度学习案例——基于卷积神经网络的手写体识别 366
19.1手写体识别案例需求 366
19.2深度学习的概念及关键技术 366
19.2.1神经网络模型 366
19.2.2深度学习之卷积神经网络 367
19.3 Python深度学习库——Keras 372
19.3.1 Keras的安装 372
19.3.2 Keras的网络层 372
19.3.3用Keras构建神经网络 375
19.4程序设计的思路 376
19.5程序设计的步骤 377
19.5.1 MNIST数据集 377
19.5.2手写体识别案例实现 378
19.5.3预测自己手写图像 382
第20章 词云实战——爬取豆瓣影评生成词云 383
20.1功能介绍 383
20.2程序设计的思路 384
20.3关键技术 385
20.3.1安装WordCloud 385
20.3.2使用WordCloud 385
20.4程序设计的步骤 389
参考文献 397