第1篇 基础知识 2
第1章 Python快速入门 2
1.1 走进Python语言 2
1.1.1 Python语言的前世今生 3
1.1.2 Python语言的优缺点 3
1.1.3 Python语言的应用领域 4
1.2 建立Python程序开发环境 5
1.2.1 安装Python语言 5
1.2.2 编写第一个Python程序“Hello World!” 7
1.2.3 运行Python程序 8
1.3 熟悉Python解释器与IDE 10
1.3.1 Python解释器 11
1.3.2 Python集成开发环境 11
1.3.3 安装PyCharm IDE 12
1.3.4 运行PyCharm IDE 13
1.3.5 设置PyCharm IDE 15
1.4 就业面试技巧与解析 18
第2章 Python编程基础 19
2.1 编程基础知识 19
2.1.1 软件开发流程 19
2.1.2 程序的运行流程 20
2.2 Python程序元素构成 20
2.3 Python基本语法元素 21
2.3.1 程序层次结构 21
2.3.2 代码注释 22
2.3.3 换行与并行 23
2.3.4 变量与保留字 25
2.3.5 字符串 26
2.3.6 程序分支语句 26
2.3.7 赋值语句 26
2.3.8 数据输入与输出 27
2.4 就业面试技巧与解析 29
第3章 数字和字符串类型 30
3.1 数字类型 30
3.1.1 整数类型 30
3.1.2 整数的按位运算 31
3.1.3 浮点数 32
3.1.4 复数类型 32
3.1.5 布尔类型 33
3.2 数字类型的操作 33
3.2.1 内置的数值操作符 33
3.2.2 内置的数值运算函数 36
3.2.3 内置的数字类型转换函数 38
3.3 字符串类型 39
3.3.1 字符串的定义 39
3.3.2 字符串格式化 41
3.3.3 字符串内置的函数 42
3.4 字符串格式化进阶——format 43
3.4.1 format()方法 44
3.4.2 format()方法的实例 44
3.5 就业面试技巧与解析 45
3.5.1 面试技巧与解析(一) 45
3.5.2 面试技巧与解析(二) 45
第4章 Python列表、元组与字典 46
4.1 什么是序列 46
4.2 序列通用操作 46
4.2.1 序列的索引和切片 47
4.2.2 序列计算 48
4.2.3 序列相关操作的函数 48
4.3 列表 48
4.3.1 直接创建列表 49
4.3.2 用list()函数创建列表 49
4.3.3 列表元素提取 50
4.3.4 操作列表的常用函数 50
4.4 元组 52
4.4.1 直接创建元组 52
4.4.2 用tuple()函数创建元组 53
4.4.3 元组元素提取 53
4.4.4 元组常用操作方法 54
4.5 字典的使用 55
4.5.1 获取字典中的值 55
4.5.2 更新字典中的值 55
4.5.3 删除字典中的值 56
4.6 字典中的方法 56
4.6.1 遍历字典 56
4.6.2 别名与复制 57
4.6.3 统计频率 57
4.6.4 字典排序 58
4.7 字典练习与实战 59
4.8 就业面试技巧与解析 60
4.8.1 面试技巧与解析(一) 60
4.8.2 面试技巧与解析(二) 60
第2篇 核心技术 62
第5章 使用Python字符串及运算符 62
5.1 字符串基本操作 62
5.2 格式化字符串 64
5.2.1 格式化字符串符号的简单使用 65
5.2.2 字符宽度和精度 66
5.2.3 对齐和用0填充 67
5.3 运算符 68
5.3.1 算术运算符 68
5.3.2 赋值运算符 68
5.3.3 比较运算符 69
5.3.4 逻辑运算符 70
5.3.5 按位运算符 71
5.3.6 成员运算符 72
5.3.7 身份运算符 73
5.3.8 Python运算符优先级 73
5.4 就业面试技巧与解析 74
5.4.1 面试技巧与解析(一) 74
5.4.2 面试技巧与解析(二) 74
第6章 控制流程和控制语句 75
6.1 结构化程序设计 75
6.2 结构化的程序流程图 76
6.2.1 程序流程图常用的基本元素 76
6.2.2 程序的流程图 76
6.3 程序运行的三种基本结构 77
6.3.1 顺序结构 77
6.3.2 选择分支结构 77
6.3.3 循环结构 78
6.4 顺序结构程序举例 78
6.5 分支结构程序举例 79
6.5.1 单分支结构 80
6.5.2 双分支结构 81
6.5.3 多分支结构 82
6.5.4 if语句嵌套结构 84
6.5.5 多重条件判断 84
6.6 循环结构程序举例 85
6.6.1 while循环结构 85
6.6.2 for循环结构 86
6.6.3 break和continue语句 87
6.7 pass语句 88
6.8 程序的异常处理 88
6.9 就业面试技巧与解析 89
6.9.1 面试技巧与解析(一) 89
6.9.2 面试技巧与解析(二) 89
第7章 函数 90
7.1 函数的基本使用 90
7.1.1 函数的定义与使用 90
7.1.2 lambda()函数 91
7.2 向函数传递参数 92
7.2.1 返回值 92
7.2.2 实参与形参 93
7.2.3 位置实参 93
7.2.4 关键字实参 94
7.2.5 默认值 95
7.2.6 多种函数调用方式 95
7.3 在函数中处理变量 96
7.3.1 局部变量 96
7.3.2 全局变量 97
7.4 递归函数 97
7.5 函数模块化 98
7.5.1 模块的导入 98
7.5.2 导入特定函数 99
7.5.3 函数别名 99
7.6 内置函数 100
7.7 就业面试技巧与解析 101
7.7.1 面试技巧与解析(一) 101
7.7.2 面试技巧与解析(二) 101
第8章 文件与文件目录 102
8.1 文件的基础操作 102
8.1.1 文件打开/关闭 102
8.1.2 文件的读取 103
8.1.3 文件的写入 105
8.1.4 用fileinput操作文件 105
8.2 常用文件和目录操作 106
8.2.1 获得当前路径 106
8.2.2 获得目录中的内容 106
8.2.3 创建目录 107
8.2.4 删除目录 108
8.2.5 判断是否是目录 108
8.2.6 判断是否是文件 109
8.2.7 批量文件重命名 109
8.3 编译可执行文件 110
8.3.1 用py2exe生成可执行程序 110
8.3.2 用cx_freeze生成可执行文件 111
8.4 就业面试技巧与解析 112
第9章 数据格式化 113
9.1 数据的维度 113
9.2 二维数据的格式化和处理 114
9.2.1 二维数据的存储格式 114
9.2.2 二维数据的表示和读写 115
9.3 二维数据的直观表示 116
9.3.1 HTML简介 116
9.3.2 CSV格式使用HTML文档展示 120
9.4 高维数据的格式化 121
9.4.1 JSON格式 121
9.4.2 XML格式 122
9.5 数据格式的相互转换 123
9.5.1 JSON库的使用 123
9.5.2 CSV格式和JSON格式相互转换 125
9.6 图像数据的格式化 127
9.6.1 PIL库的安装和简单使用 127
9.6.2 字符画绘制 130
9.7 就业面试技巧与解析 131
9.7.1 面试技巧与解析(一) 131
9.7.2 面试技巧与解析(二) 131
第10章 Python类的使用 132
10.1 面向对象 132
10.2 Python基本类的创建 132
10.2.1 初识类 132
10.2.2 属性的引用 133
10.2.3 关于self 134
10.2.4 类属性补充 134
10.3 Python类的继承的组合 134
10.3.1 单继承 134
10.3.2 super()函数 136
10.3.3 多继承 136
10.3.4 组合 137
10.4 Python之抽象 138
10.5 作业与实战 140
10.6 就业面试技巧与解析 148
10.6.1 面试技巧与解析(一) 148
10.6.2 面试技巧与解析(二) 149
第11章 Python模块的使用 150
11.1 什么是模块编程 150
11.2 Python模块的基本使用 151
11.2.1 初识模块 151
11.2.2 from…import 152
11.3 模块详细使用 153
11.3.1 变量与命名空间 153
11.3.2 dir()函数 153
11.3.3 globals()和locals()函数 154
11.3.4 reloads()函数 154
11.4 包的使用 155
11.4.1 包的简介 155
11.4.2 第三方包的导入与使用 155
11.5 就业面试技巧与解析 157
第3篇 核心应用 160
第12章 用Pillow库处理图片 160
12.1 Pillow库概述 160
12.1.1 Pillow库处理图像基础 160
12.1.2 Image模块 162
12.1.3 使用ImageChops模块进行图片合成 166
12.1.4 使用ImageEnhance模块 167
12.1.5 使用ImageFilter块 169
12.1.6 使用ImageDraw模块画图 172
12.2 使用Pillow库处理图片举例 176
12.2.1 图片格式转换 176
12.2.2 批量生成缩略图 177
12.2.3 为图片添加Logo 178
12.3 就业面试技巧与解析 181
12.3.1 面试技巧与解析(一) 181
12.3.2 面试技巧与解析(二) 181
第13章 正则表达式 182
13.1 正则表达式基础 182
13.2 正则表达式基本元字符 183
13.2.1 正则表达式元字符 183
13.2.2 正则表达式限定符 184
13.2.3 正则表达式元字符举例 184
13.3 re模块 185
13.3.1 正则匹配搜索函数 186
13.3.2 sub()与subn()函数 190
13.3.3 split()函数 190
13.3.4 正则表达式对象 191
13.4 分组匹配与匹配对象使用 192
13.4.1 分组基础 192
13.4.2 匹配对象与组的使用 193
13.4.3 匹配对象与索引使用 193
13.4.4 分组扩展 194
13.5 正则表达式应用实例 197
13.6 就业面试技巧与解析 197
13.6.1 面试技巧与解析(一) 198
13.6.2 面试技巧与解析(二) 198
第14章 Python线程和进程 199
14.1 进程 199
14.1.1 进程基础 199
14.1.2 multiprocess模块 202
14.1.3 进程同步 204
14.2 线程 207
14.2.1 线程基础 207
14.2.2 Thread类 208
14.2.3 threading模块 209
14.3 就业面试技巧与解析 216
14.3.1 面试技巧与解析(一) 216
14.3.2 面试技巧与解析(二) 216
第15章 Python异常处理 218
15.1 异常概述 218
15.2 异常的处理 220
15.2.1 异常基础 220
15.2.2 异常处理的基本语法 220
15.2.3 异常及处理 221
15.3 Python常见标准异常 222
15.3.1 处理ZeroDivisionError 222
15.3.2 使用异常避免崩溃 222
15.3.3 处理FileNotFoundError 223
15.3.4 万能异常Exception 224
15.3.5 自定义异常 225
15.4 手动抛出异常 226
15.4.1 用raise手动抛出异常 226
15.4.2 assert语句 227
15.5 就业面试技巧与解析 228
15.5.1 面试技巧与解析(一) 228
15.5.2 面试技巧与解析(二) 228
第16章 程序测试与打包 230
16.1 Python测试 230
16.1.1 测试的主要步骤 230
16.1.2 测试驱动开发 231
16.1.3 单元测试 231
16.1.4 常用的测试工具 232
16.1.5 Python常见代码检查工具 234
16.1.6 Python程序性能检测工具 235
16.2 程序打包 235
16.2.1 Distutils的使用 236
16.2.2 Setuptools的使用 236
16.3 编程扩展 237
16.3.1 用C语言扩展过程 237
16.3.2 Jython与Java扩展 238
16.3.3 编译扩展 239
16.4 就业面试技巧与解析 239
16.4.1 面试技巧与解析(一) 239
16.4.2 面试技巧与解析(二) 240
第17章 数据结构基础 241
17.1 概述 241
17.2 数据结构的研究对象 242
17.2.1 数据的逻辑结构 242
17.2.2 数据的物理结构 242
17.3 Python数据结构之线性结构 242
17.3.1 线性表的抽象数据类型 242
17.3.2 Python中的线性表 243
17.3.3 自定义栈结构 247
17.3.4 Queue模块 248
17.4 树状结构 249
17.4.1 构建树 250
17.4.2 二叉树 250
17.4.3 二叉树的遍历 252
17.5 图形结构 253
17.5.1 图的抽象数据类型 254
17.5.2 图的表示方式 254
17.5.3 用字典构建图与搜索图 255
17.5.4 图的简单应用:最小生成树 257
17.6 查找与排序 257
17.6.1 顺序查找有序列表 258
17.6.2 二分查找有序列表 258
17.6.3 冒泡排序 259
17.6.4 二叉树排序 259
17.7 就业面试技巧与解析 261
第18章 数据库编程 262
18.1 Python数据库应用程序接口 262
18.1.1 数据库应用程序接口概述 262
18.1.2 数据库游标的使用 264
18.2 Python操作SQLite3数据库 268
18.2.1 SQLite3数据库简介 268
18.2.2 SQLite3数据库操作实例 268
18.3 Python操作MariaDB数据库 270
18.3.1 MariaDB数据库简介 270
18.3.2 建立MariaDB数据库操作环境 271
18.3.3 MariaDB数据库操作实例 273
18.4 Python操作MongoDB数据库 275
18.4.1 MongoDB数据库简介 275
18.4.2 建立MongoDB数据库操作环境 276
18.4.3 MongoDB数据库基础 277
18.4.4 MongoDB数据库操作实例 278
18.5 就业面试技巧与解析 283
18.5.1 面试技巧与解析(一) 284
18.5.2 面试技巧与解析(二) 284
第4篇 高级应用 286
第19章 网络编程 286
19.1 网络编程基础 286
19.1.1 什么是计算机网络 286
19.1.2 网络协议 287
19.1.3 地址与端口 287
19.2 套接字的使用 288
19.2.1 用socket建立服务器端程序 288
19.2.2 用socket建立客户端程序 290
19.2.3 用socket建立基于UDP的服务器与客户端程序 291
19.2.4 用SocketServer模块建立服务器 292
19.3 urllib与http包的使用 294
19.3.1 urllib和http包简介 294
19.3.2 用urllib和http包访问网站 295
19.4 用poplib与smtplib库收发邮件 299
19.4.1 用poplib检查邮件 300
19.4.2 用smtplib发送邮件 301
19.5 用ftplib访问FTP服务 302
19.5.1 ftplib模块简介 303
19.5.2 使用Python访问FTP 304
19.6 就业面试技巧与解析 305
19.6.1 面试技巧与解析(一) 305
19.6.2 面试技巧与解析(二) 305
第20章 Web网站编程技术 306
20.1 Flask Web网站框架 306
20.1.1 Flask框架简介 306
20.1.2 Flask框架安装 307
20.1.3 Flask框架第一个程序“Hello world!” 308
20.1.4 Flask框架的基本使用 309
20.2 Django Web网站框架 320
20.2.1 Django框架简介 320
20.2.2 Django框架安装 320
20.2.3 Django框架第一个程序 320
20.2.4 Django框架的基本使用 321
20.3 就业面试技巧与解析 331
20.3.1 面试技巧与解析(一) 331
20.3.2 面试技巧与解析(二) 331
第21章 基于tkinter的GUI界面编程 332
21.1 GUI简介 332
21.2 Python中编写GUI的库 333
21.3 tkinter图形化库 333
21.3.1 tkinter简介 333
21.3.2 安装tkinter库 333
21.3.3 导入tkinter库 333
21.3.4 创建图形用户界面步骤 334
21.4 tkinter库中的组件 335
21.4.1 组件分类 335
21.4.2 布局组件 335
21.5 常用组件 338
21.5.1 按钮组件 338
21.5.2 标签组件 338
21.5.3 文本框组件 339
21.5.4 菜单栏组件 339
21.5.5 选择性组件 340
21.5.6 绘制图形 341
21.6 事件处理机制 342
21.6.1 什么是事件 342
21.6.2 响应事件 343
21.7 对话框 344
21.7.1 标准对话框 344
21.7.2 自定义对话框 346
21.8 就业面试技巧与解析 346
21.8.1 面试技巧与解析(一) 346
21.8.2 面试技巧与解析(二) 346
第5篇 项目实践 348
第22章 游戏开发飞机大战 348
22.1 项目规划 348
22.2 封装类 349
22.2.1 角色类 349
22.2.2 敌机类 350
22.2.3 子弹类 351
22.2.4 按钮类 352
22.3 开发步骤 353
22.3.1 界面绘制 353
22.3.2 消息相应事件 353
22.3.3 角色绘制与操控 355
22.3.4 声音处理 356
22.3.5 僚机处理 357
22.3.6 绘制文本 359
22.3.7 增加敌机 360
22.3.8 射击处理 361
22.3.9 爆炸效果 362
22.3.10 分数处理 363
22.3.11 游戏最终逻辑 363
第23章 网上购物系统 367
23.1 开发背景 367
23.2 系统功能 367
23.3 用户系统 367
23.3.1 用户信息数据 368
23.3.2 用户处理函数 368
23.3.3 用户登录页面 370
23.4 购物车系统 372
23.4.1 购物车数据 372
23.4.2 处理函数 373
23.4.3 购物车页面 374
23.5 商品系统 377
23.5.1 商品数据 377
23.5.2 商品处理函数 377
23.5.3 商品列表页面 379
23.6 指令系统 381
23.6.1 指令数据 382
23.6.2 指令处理函数 382
23.6.3 指令页面 383