基础篇 3
第1章 Python语言介绍 3
1.1 Python语言简介 3
1.2 安装与配置Python环境 4
1.2.1 安装Python 4
1.2.2 运行Python 5
1.3 Python开发环境IDLE简介 6
1.3.1 IDLE的启动 6
1.3.2 利用IDLE创建Python程序 7
1.3.3 IDLE常用编辑功能 8
1.3.4 在IDLE中运行和调试Python程序 8
1.4 Python基本输入输出 9
1.4.1 Python基本输入 9
1.4.2 Python基本输出 10
1.5 Python代码规范 11
1.6 使用帮助 12
1.7 习题 14
第2章 Python语法基础 15
2.1 Python数据类型 15
2.1.1 数值类型 15
2.1.2 字符串 15
2.1.3 布尔类型 18
2.1.4 空值 18
2.1.5 Python数字类型转换 19
2.2 常量和变量 19
2.2.1 变量 19
2.2.2 常量 21
2.3 运算符与表达式 21
2.3.1 运算符 22
2.3.2 表达式 28
2.4 序列数据结构 28
2.4.1 列表 28
2.4.2 元组 32
2.4.3 字典 34
2.4.4 集合 38
2.5 习题 39
第3章 Python控制语句 40
3.1 选择结构 40
3.1.1 if语句 40
3.1.2 if…else语句 41
3.1.3 if…elif…else语句 42
3.1.4 pass语句 44
3.2 循环结构 44
3.2.1 while语句 44
3.2.2 for语句 46
3.2.3 continue和break语句 47
3.2.4 循环嵌套 48
3.2.5 列表生成式 50
3.3 常用算法及应用实例 51
3.3.1 累加与累乘 51
3.3.2 求最大数和最小数 52
3.3.3 枚举法 53
3.3.4 递推与迭代 54
3.4 游戏初步——猜单词游戏 55
3.5 习题 57
第4章 Python函数与模块 59
4.1 函数的定义和使用 59
4.1.1 函数的定义 59
4.1.2 函数的使用 60
4.1.3 Lambda表达式 61
4.1.4 函数的返回值 62
4.2 函数参数 63
4.2.1 函数形参和实参的区别 63
4.2.2 参数的传递 64
4.2.3 函数参数的类型 66
4.2.4 变量的作用域 69
4.3 闭包和函数的递归调用 70
4.3.1 闭包 70
4.3.2 函数的递归调用 70
4.4 内置函数 74
4.4.1 数学运算函数 74
4.4.2 集合操作函数 74
4.4.3 字符串函数 75
4.4.4 反射函数 76
4.4.5 I/O函数 77
4.5 模块 78
4.5.1 import导入模块 78
4.5.2 定义自己的模块 79
4.5.3 time模块 81
4.5.4 calendar模块 82
4.5.5 datetime模块 82
4.5.6 random模块 84
4.5.7 math模块和cmath模块 84
4.6 游戏初步 86
4.7 函数式编程 92
4.7.1 高阶函数 92
4.7.2 Python函数式编程常用的函数 93
4.7.3 迭代器 97
4.7.4 普通编程与函数式编程的对比 98
4.8 习题 98
第5章 Python文件的使用 100
5.1 文件 100
5.2 文件的访问 101
5.2.1 打开(建立)文件 101
5.2.2 读取文本文件 103
5.2.3 写文本文件 104
5.2.4 文件内移动 106
5.2.5 文件的关闭 107
5.2.6 二进制文件的读/写 108
5.3 文件夹的操作 110
5.3.1 当前工作目录 110
5.3.2 目录操作 110
5.3.3 文件操作 112
5.4 文件应用案例——游戏地图存储 115
5.4.1 地图写入文件 115
5.4.2 从地图文件读取信息 116
5.5 习题 116
第6章 面向对象程序设计 117
6.1 面向对象程序设计基础 117
6.2 类和对象 118
6.2.1 定义和使用类 119
6.2.2 构造函数 120
6.2.3 析构函数 120
6.2.4 实例属性和类属性 121
6.2.5 私有成员与公有成员 123
6.2.6 方法 125
6.3 类的继承和多态 126
6.3.1 类的继承 126
6.3.2 类的多继承 128
6.3.3 方法重写 129
6.3.4 多态 129
6.3.5 运算符重载 131
6.4 面向对象应用案例——扑克牌类设计 132
6.4.1 关键技术——random模块 133
6.4.2 程序设计的思路 136
6.5 习题 138
第7章 Tkinter图形界面设计 140
7.1 Python图形开发库 140
7.1.1 创建Windows窗口 140
7.1.2 几何布局管理 141
7.2 常用Tkinter组件的使用 145
7.2.1 Tkinter组件 145
7.2.2 标准属性 146
7.2.3 Label组件 146
7.2.4 Button组件 148
7.2.5 单行文本框Entry和多行文本框Text 149
7.2.6 列表框组件Listbox 151
7.2.7 单选按钮Radiobutton和复选框Checkbutton 153
7.2.8 菜单组件Menu 156
7.2.9 对话框 160
7.2.10 消息窗口 162
7.2.11 Frame组件 164
7.2.12 Scrollbar组件 166
7.3 图形绘制 167
7.3.1 Canvas组件 167
7.3.2 Canvas上的图形对象 167
7.4 Tkinter字体 176
7.4.1 通过元组表示字体 176
7.4.2 通过Font对象表示字体 177
7.5 Python事件处理 178
7.5.1 事件类型 178
7.5.2 事件绑定 179
7.5.3 事件处理函数 181
7.6 图形界面程序设计的应用 183
7.6.1 开发猜数字游戏 183
7.6.2 扑克牌发牌程序窗体图形版 185
7.7 习题 186
第8章 Python数据库应用 188
8.1 数据库基础 188
8.1.1 数据库概念 188
8.1.2 关系型数据库 189
8.1.3 数据库和Python接口程序 189
8.2 结构化查询语言SQL 190
8.2.1 数据表的建立和删除 190
8.2.2 查询语句SELECT 191
8.2.3 添加记录语句INSERT INTO 192
8.2.4 更新语句UPDATE 193
8.2.5 删除记录语句DELETE 193
8.3 SQLite数据库简介 193
8.3.1 SQLite数据库 193
8.3.2 SQLite3的数据类型 194
8.3.3 SQLite3的函数 195
8.3.4 SQLite3的模块 196
8.4 Python的SQLite3数据库编程 196
8.4.1 访问数据库的步骤 196
8.4.2 创建数据库和表 198
8.4.3 数据库的插入、更新和删除操作 198
8.4.4 数据库表的查询操作 199
8.4.5 数据库使用实例 200
8.5 Python数据库应用案例——智力问答游戏 202
8.6 习题 205
第9章 网络编程和多线程 206
9.1 网络编程基础 206
9.1.1 TCP/IP 206
9.1.2 IP 207
9.1.3 TCP和UDP 207
9.1.4 端口 207
9.1.5 Socket 207
9.2 TCP编程 211
9.2.1 TCP客户端编程 211
9.2.2 TCP服务器端编程 213
9.3 UDP编程 215
9.4 多线程编程 217
9.4.1 进程和线程 217
9.4.2 创建线程 218
9.4.3 线程同步 222
9.4.4 定时器Timer 223
9.5 网络编程案例——网络五子棋游戏 224
9.5.1 服务器端程序设计 225
9.5.2 客户端程序设计 231
9.6 习题 234
开发篇 237
第10章 连连看游戏 237
10.1 连连看游戏介绍 237
10.2 程序设计的思路 238
10.3 程序设计的步骤 246
第11章 推箱子游戏 251
11.1 推箱子游戏介绍 251
11.2 程序设计的思路 251
11.3 关键技术 253
11.4 程序设计的步骤 254
提高篇 261
第12章 基于Pygame游戏设计 261
12.1 Pygame基础知识 261
12.2 Pygame的使用 264
12.2.1 Pygame开发游戏的主要流程 264
12.2.2 Pygame的图像图形绘制 266
12.2.3 Pygame的键盘和鼠标事件的处理 268
12.2.4 Pygame的字体使用 272
12.2.5 Pygame的声音播放 274
12.2.6 Pygame的精灵使用 275
12.3 基于Pygame设计贪吃蛇游戏 280
12.4 基于Pygame设计飞机大战游戏 286
12.4.1 游戏角色 287
12.4.2 游戏界面显示 289
12.4.3 游戏逻辑实现 290
12.5 习题 294
第13章 Python爬取网页信息 295
13.1 相关HTTP知识 295
13.2 urllib库 296
13.2.1 urllib库简介 296
13.2.2 urllib库的基本使用 297
13.3 BeautifulSoup库 306
13.3.1 BeautifulSoup库概述 306
13.3.2 BeautifulSoup库的四大对象 307
13.3.3 BeautifulSoup库操作解析文档树 309
13.4 网络爬虫实战——Python爬取新浪国内新闻 313
13.5 习题 317
第14章 科学计算和可视化应用 318
14.1 Numpy库的使用 318
14.1.1 Numpy数组 318
14.1.2 Numpy数组的算术运算 323
14.1.3 Numpy数组的形状操作 326
14.1.4 Numpy中矩阵对象 327
14.1.5 文件存取数组内容 328
14.2 Matplotlib绘图可视化 329
14.2.1 Matplotlib.pyplot模块——快速绘图 329
14.2.2 绘制条形图、饼状图、散点图 336
14.2.3 交互式标注 341
14.3 习题 341
第15章 Python图像处理 342
15.1 Python图像处理类库 342
15.2 PIL的Image类的使用 344
15.2.1 Image类的属性 344
15.2.2 转换图像格式 345
15.2.3 创建缩略图 346
15.2.4 复制和粘贴图像区域 347
15.2.5 调整尺寸和旋转 347
15.2.6 转换成灰度图像 347
15.2.7 对像素进行操作 348
15.3 PIL的ImageFilter和ImageEnhance类的使用 348
15.3.1 ImageFilter类 348
15.3.2 ImageEnhance类 350
15.4 PIL的ImageDraw类的使用 350
15.4.1 ImageDraw类的基础知识 350
15.4.2 ImageDraw类的方法 351
15.5 用Python生成验证码图片 354
15.6 习题 355
第16章 数据挖掘和机器学习 356
16.1 Python机器学习库sklearn的安装 356
16.2 Python机器学习库sklearn的应用 357
16.2.1 训练数据集——鸢尾花 359
16.2.2 sklearn库的聚类 360
16.2.3 sklearn库的分类 361
16.2.4 sklearn库的回归 363
16.2.5 鸢尾花相关的分类 364
16.3 习题 366
第17章 Python数据分析 367
17.1 Pandas 367
17.1.1 Series 368
17.1.2 DataFrame 370
17.2 Pandas统计功能 378
17.2.1 基本统计 378
17.2.2 分组统计 379
17.3 Pandas合并/连接和排序 380
17.3.1 合并/连接 380
17.3.2 排序和排名 383
17.4 Pandas筛选和过滤功能 388
17.4.1 筛选 388
17.4.2 按筛选条件进行汇总 390
17.4.3 过滤 391
17.5 Pandas数据导入导出 392
17.5.1 导入CSV文件 392
17.5.2 读取其他格式数据 393
17.5.3 导出Excel文件 393
17.5.4 导出CSV文件 394
17.6 习题 394
参考文献 396