基础篇 2
第1章 Python语言概述 2
1.1 Python语言简介 2
1.2 安装与运行Python环境 3
1.2.1 安装Python 4
1.2.2 运行Python 4
1.3 Python开发环境IDLE简介 5
1.3.1 IDLE的启动 5
1.3.2 利用IDLE创建Python程序 6
1.3.3 IDLE常用编辑功能 6
1.3.4 在IDLE中运行和调试Python程序 7
1.4 Python基本输入/输出 8
1.4.1 Python基本输入 8
1.4.2 Python基本输出 9
1.5 Python代码规范 10
1.6 使用帮助 11
习题 12
第2章 Python语法基础 13
2.1 Python数据类型 13
2.1.1 数值类型 13
2.1.2 字符串 13
2.1.3 布尔类型 15
2.1.4 空值 16
2.1.5 Python类型转换 16
2.2 常量和变量 17
2.2.1 变量 17
2.2.2 常量 19
2.3 运算符与表达式 19
2.3.1 运算符 19
2.3.2 表达式 24
2.4 序列的数据结构 25
2.4.1 列表 25
2.4.2 元组 28
2.4.3 字典 30
2.4.4 集合 33
习题 34
第3章 Python控制语句 35
3.1 选择结构 35
3.1.1 if语句 35
3.1.2 if…else语句 36
3.1.3 if…elif…else语句 37
3.1.4 pass语句 39
3.2 循环结构 39
3.2.1 while语句 39
3.2.2 for语句 41
3.2.3 continue和break语句 43
3.2.4 循环嵌套 44
3.2.5 列表生成式 46
3.3 游戏初步——猜单词游戏 47
习题 49
第4章 Python函数与模块 50
4.1 函数的定义和使用 50
4.1.1 函数的定义 50
4.1.2 函数的使用 51
4.1.3 lambda表达式 52
4.1.4 函数的返回值 53
4.2 函数参数 54
4.2.1 函数形参和实参的区别 54
4.2.2 参数的传递 54
4.2.3 函数参数的类型 57
4.2.4 变量的作用域 59
4.3 闭包和函数的递归调用 60
4.3.1 闭包 60
4.3.2 函数的递归调用 60
4.4 内置函数 63
4.4.1 数学运算函数 63
4.4.2 字符串函数 64
4.4.3 反射函数 65
4.4.4 I/O函数 66
4.5 模块 66
4.5.1 import导入模块 66
4.5.2 定义自己的模块 68
4.5.3 time模块 69
4.5.4 calendar模块 70
4.5.5 random模块 71
4.5.6 math模块和cmath模块 71
4.6 游戏初步——发牌程序控制台版 72
习题 75
第5章 Python文件 76
5.1 文件 76
5.2 文件的访问 77
5.2.1 打开(建立)文件 77
5.2.2 读取文本文件 79
5.2.3 写文本文件 80
5.2.4 文件内移动 81
5.2.5 文件的关闭 83
5.2.6 二进制文件的读/写 83
5.3 文件夹的操作 85
5.3.1 当前工作目录 85
5.3.2 目录操作 86
5.3.3 文件操作 87
5.4 文件应用案例——游戏地图存储 89
5.4.1 地图写入文件 90
5.4.2 从地图文件读取信息 90
5.5 文件应用案例——词频统计 91
习题 93
第6章 面向对象程序设计 94
6.1 面向对象程序设计基础 94
6.2 类和对象 95
6.2.1 定义和使用类 95
6.2.2 构造函数_ _init_ _() 96
6.2.3 析构函数 97
6.2.4 实例属性和类属性 97
6.2.5 私有成员与公有成员 100
6.2.6 方法 101
6.3 类的继承和多态 102
6.3.1 类的继承 102
6.3.2 类的多继承 104
6.3.3 方法重写 104
6.3.4 多态 105
6.3.5 运算符重载 107
6.4 面向对象应用案例——扑克牌类设计 107
6.4.1 关键技术——random模块 108
6.4.2 程序设计的思路 110
习题 113
第7章 Tkinter图形界面设计 114
7.1 Python图形开发库 114
7.1.1 创建Windows窗口 114
7.1.2 几何布局管理器 115
7.2 常用Tkinter组件的使用 118
7.2.1 Tkinter组件 118
7.2.2 标准属性 119
7.2.3 Label标签组件 120
7.2.4 Button按钮组件 121
7.2.5 单行文本框(Entry)和多行文本框(Text) 123
7.2.6 Listbox列表框组件 124
7.2.7 单选按钮(Radiobutton)和复选框(Checkbutton) 126
7.2.8 菜单组件(Menu) 129
7.2.9 对话框 132
7.2.10 消息窗口(消息框) 135
7.2.11 Frame框架组件 136
7.2.12 Scrollbar滚动条组件 138
7.3 图形绘制 139
7.3.1 Canvas画布组件 139
7.3.2 Canvas上的图形对象 140
7.4 Tkinter字体 149
7.4.1 通过元组表示字体 149
7.4.2 通过Font对象表示字体 150
7.5 Python事件处理 151
7.5.1 事件类型 151
7.5.2 事件绑定 152
7.5.3 事件处理函数 153
7.6 图形界面应用案例——开发猜数字游戏 155
7.7 图形界面应用案例——窗体图形版发牌 157
习题 159
第8章 Python数据库应用 160
8.1 数据库基础 160
8.1.1 数据库概念 160
8.1.2 关系型数据库 161
8.1.3 数据库和Python接口程序 161
8.2 结构化查询语言(SQL) 162
8.2.1 数据表的建立和删除 162
8.2.2 查询语句 162
8.2.3 添加记录语句 164
8.2.4 更新语句 164
8.2.5 删除记录语句 165
8.3 SQLite数据库简介 165
8.3.1 SQLite数据库 165
8.3.2 SQLite3的数据类型 165
8.3.3 SQLite3的函数 166
8.3.4 SQLite3的模块 167
8.4 Python的SQLite3数据库编程 167
8.4.1 访问数据库的步骤 167
8.4.2 创建数据库和表 169
8.4.3 数据库的插入、更新和删除操作 169
8.4.4 数据库表的查询操作 170
8.4.5 数据库使用实例 170
8.5 Python数据库应用案例——智力问答游戏 173
习题 175
第9章 网络编程和多线程 177
9.1 网络编程基础 177
9.1.1 TCP/IP协议简介 177
9.1.2 IP协议 177
9.1.3 TCP和UDP协议 178
9.1.4 端口 178
9.1.5 Socket 178
9.2 TCP编程 181
9.2.1 TCP客户端编程 181
9.2.2 TCP服务器端编程 183
9.3 UDP编程 186
9.4 多线程编程 187
9.4.1 进程和线程 187
9.4.2 创建线程 188
9.4.3 线程同步 191
9.4.4 定时器Timer 193
9.5 网络编程案例——Python网络五子棋游戏 193
9.5.1 设计思路 194
9.5.2 服务器端编程 197
9.5.3 客户端编程 201
习题 204
第10章 Python操作XML文件 205
10.1 XML概述 205
10.1.1 使用XML的原因 205
10.1.2 Python与XML操作相关模块 206
10.2 Python通过DOM操作XML文档 208
10.2.1 使用DOM访问XML文件 208
10.2.2 使用DOM添加新结点 211
10.2.3 使用DOM修改、删除结点 212
10.2.4 生成DOM对象树并写入到XML文件中 212
习题 214
提高篇 216
第11章 基于Pygame设计游戏 216
11.1 Pygame基础知识 216
11.1.1 安装Pygame库 216
11.1.2 Pygame的模块 217
11.2 Pygame的使用 220
11.2.1 Pygame开发游戏的主要流程 220
11.2.2 Pygame的图像图形绘制 221
11.2.3 Pygame的键盘和鼠标事件的处理 224
11.2.4 Pygame的字体使用 228
11.2.5 Pygame的声音播放 229
11.2.6 Pygame的精灵使用 230
11.3 基于Pygame设计贪吃蛇游戏 234
11.4 基于Pygame设计飞机大战游戏 240
11.4.1 游戏角色 241
11.4.2 游戏界面显示 243
11.4.3 游戏逻辑实现 244
习题 248
第12章 Python爬取网页信息 249
12.1 相关HTTP协议知识 249
12.2 urllib库 250
12.2.1 urllib库简介 250
12.2.2 urllib库的基本使用 250
12.3 BeautifulSoup库 256
12.3.1 BeautifulSoup库概述 256
12.3.2 BeautifulSoup库的四大对象 257
12.3.3 BeautifulSoup库操作解析文档树 259
12.4 网络爬取实战——Python爬取新浪国内新闻 262
习题 264
第13章 Python图像处理 265
13.1 Python图像处理类库(PIL) 265
13.2 PIL库的Image类 267
13.2.1 Image类的属性 267
13.2.2 转换图像格式 268
13.2.3 创建缩略图 269
13.2.4 复制和粘贴图像区域 269
13.2.5 调整尺寸和旋转 269
13.2.6 转换成灰度图像 269
13.2.7 对像素进行操作 270
13.3 PIL的ImageFilter和ImageEnhance类 270
13.3.1 ImageFilter类 270
13.3.2 ImageEnhance类 272
13.4 PIL的ImageDraw类 272
13.4.1 ImageDraw类的基础知识 272
13.4.2 ImageDraw类的方法 273
13.5 用Python生成验证码图片 275
习题 277
第14章 科学计算和可视化应用 278
14.1 NumPy库的使用 278
14.1.1 NumPy数组 278
14.1.2 NumPy数组的算术运算 282
14.1.3 NumPy数组的形状操作 284
14.1.4 文件存取数组内容 285
14.1.5 NumPy的图像数组 286
14.2 Matplotlib绘图可视化 288
14.2.1 Matplotlib.pyplot模块——快速绘图 288
14.2.2 绘制条形图、饼状图、散点图等 294
14.2.3 交互式标注 297
习题 298
第15章 数据挖掘和机器学习 299
15.1 Python机器学习库sklearn的安装 299
15.2 Python机器学习库sklearn的应用 300
15.2.1 训练数据集——鸢尾花 301
15.2.2 sklearn库的聚类 302
15.2.3 sklearn库的分类 303
15.2.4 sklearn库的回归 305
15.2.5 鸢尾花相关的分类 306
习题 307
参考文献 308