第1章 Python简介及环境搭建 1
1.1 了解Python 2
1.2 搭建Python的编程环境 3
1.2.1 Python环境简介 3
1.2.2 Windows下Python环境的搭建 4
1.2.3 Windows环境变量的配置 6
1.2.4 Linux下的配置 7
1.3 编写第一个Python程序 8
1.4 常用的IDE工具 10
课堂范例 14
上机实战 16
第2章 Python基础 17
2.1 变量 18
2.1.1 变量的定义 18
2.1.2 变量的类型 19
2.1.3 标识符 22
2.1.4 关键字 22
2.1.5 输入和输出 23
2.1.6 数据类型转换 25
2.1.7 ==与is 26
2.2 编写注释 27
2.2.1 单行注释 27
2.2.2 多行注释 28
2.2.3 中文注释 28
2.2.4 平台注释 28
2.3 运算符 29
2.3.1 算术运算符 29
2.3.2 比较运算符 30
2.3.3 赋值运算符 31
2.3.4 位运算符 33
2.3.5 逻辑运算符 35
2.3.6 成员运算符 36
2.3.7 身份运算符 36
2.3.8 运算符的优先级 37
2.4 判断语句 38
2.4.1 if语句 38
2.4.2 if…else语句 39
2.4.3 if嵌套 40
2.4.4 elif语句 41
2.5 循环语句 42
2.5.1 while循环 42
2.5.2 嵌套while循环 42
2.5.3 for循环 43
2.5.4 嵌套for循环 44
2.5.5 break和continue 44
2.6 列表和元组 45
2.6.1 列表 45
2.6.2 元组 53
2.7 字典 54
2.7.1 字典的定义 54
2.7.2 字典的新增和修改 55
2.7.3 字典的查询 55
2.7.4 字典的删除 57
2.7.5 字典的判断 58
2.7.6 字典的遍历 58
2.7.7 字典的其他功能 59
2.7.8 字典与列表对比 61
2.8 无序集合 61
2.8.1 定义无序集合 61
2.8.2 无序集合的新增 62
2.8.3 无序集合的删除 62
2.8.4 无序集合的交、并、差、集 63
2.8.5 无序集合的判断 64
2.8.6 无序集合与列表、元组之间的相互转换 64
2.9 字符串 65
2.9.1 字符串介绍 65
2.9.2 字符串编码 66
2.9.3 字符串的定义及访问 66
2.9.4 字符串的格式化 67
2.9.5 转义字符 68
2.9.6 字符串运算符 69
2.9.7 字符串的其他常见操作 70
2.10 函数 79
2.10.1 函数的介绍 79
2.10.2 函数的定义和调用 79
2.10.3 函数的文档说明 80
2.10.4 函数的4种类型 81
2.10.5 函数的嵌套 82
2.10.6 函数的参数 82
2.10.7 变量作用域 87
2.10.8 递归函数 89
2.10.9 匿名函数 90
2.10.10 高阶函数 90
2.11 Python之“禅” 91
课堂范例 92
上机实战 94
第3章 面向对象基础知识 95
3.1 理解面向对象的思想 96
3.2 类和对象 96
3.2.1 理解类和对象 96
3.2.2 定义类 97
3.2.3 创建对象 98
3.2.4 self 99
3.3 魔法方法 99
3.4 公有和私有 102
3.5 继承 105
3.5.1 单继承 105
3.5.2 多继承 106
3.5.3 重写 106
3.6 多态 109
3.7 属性和方法 112
3.7.1 属性 112
3.7.2 方法 114
课堂范例 116
上机实战 120
第4章 面向对象高级知识 121
4.1 设计模式 122
4.1.1 理解设计模式 122
4.1.2 单例设计模式 122
4.1.3 工厂设计模式 124
4.2 元类 128
4.3 动态语言 131
4.3.1 给对象添加和删除属性 131
4.3.2 给类添加和删除属性 132
4.3.3 动态地给类增加方法 132
4.3.4 魔法方法_slots_ 134
4.4 生成器 134
4.5 迭代器 137
4.6 闭包 139
4.7 装饰器 140
4.8 属性property 144
4.8.1 私有属性添加getter和setter方法 144
4.8.2 使用property升级getter和setter方法 145
4.8.3 使用@property代替getter和setter方法 145
4.9 内建 146
4.9.1 内建属性 146
4.9.2 内建函数 148
4.9.3 内建类 149
4.10 异常 150
4.10.1 理解异常 150
4.10.2 捕获异常 151
4.10.3 自定义异常 155
课堂范例 156
上机实战 158
第5章 读写文件 159
5.1 文件的打开和关闭 160
5.1.1 打开文件 160
5.1.2 关闭文件 161
5.2 文件的读写 161
5.2.1 读文件 162
5.2.2 写文件 163
5.3 操作文件和目录 164
5.4 内存中的读写 167
5.5 序列化 168
课堂范例 173
上机实战 174
第6章 自带电池模块 175
6.1 谈谈模块 176
6.1.1 模块的介绍和使用 176
6.1.2 包的介绍和使用 179
6.1.3 发布和安装 182
6.2 再次探究模块 184
6.3 受人喜爱的内建模块 185
6.3.1 random模块 185
6.3.2 datetime模块 186
6.3.3 collections模块 188
6.3.4 hashlib模块 190
6.3.5 hmac模块 191
6.3.6 base64模块 192
6.3.7 struct模块 192
6.3.8 itertools模块 193
6.3.9 contextlib模块 194
6.3.10 xml模块 195
6.3.11 html模块 197
6.3.12 urllib模块 198
6.3.13 enum模块 200
6.3.14 logging模块 200
6.3.15 re模块 202
6.4 有趣的第三方模块 206
6.4.1 PIL模块 206
6.4.2 PyMysql模块 207
6.4.3 pygame模块 209
课堂范例 210
上机实战 214
第7章 系统编程 215
7.1 进程 216
7.1.1 理解多任务和进程 216
7.1.2 使用fork 217
7.1.3 多进程修改全局变量 218
7.1.4 Multiprocessing模块 219
7.1.5 进程池 224
7.1.6 进程间的通信 226
7.2 线程 228
7.2.1 使用threading创建线程 228
7.2.2 进程和线程的区别 230
7.2.3 同步 233
7.2.4 ThreadLocal的用法 238
7.2.5 异步 239
课堂范例 240
上机实战 242
第8章 网络编程 243
8.1 网络通信概述 244
8.1.1 TCP/IP协议 244
8.1.2 IP地址 244
8.1.3 端口号 244
8.1.4 子网掩码 245
8.1.5 Socket 245
8.2 UDP编程 246
8.2.1 UDP介绍 246
8.2.2 收发数据 247
8.2.3 通信过程 249
8.2.4 UDP广播 251
8.3 TCP编程 252
8.3.1 TCP介绍 253
8.3.2 TCP客户端编程 253
8.3.3 TCP服务端编程 254
8.3.4 TCP三次握手 256
8.3.5 TCP四次挥手 258
8.3.6 TCP10种状态 259
8.3.7 TCP长连接和短连接 260
课堂范例 260
上机实战 262
第9章 收发电子邮件 263
9.1 电子邮件介绍 264
9.1.1 纸质邮件发送过程 264
9.1.2 电子邮件的发送流程 264
9.1.3 邮件收发协议 265
9.1.4 邮箱开发设置 265
9.2 发送邮件 267
9.2.1 使用SMTP发送邮件 267
9.2.2 发送纯文本格式的邮件 267
9.2.3 发送HTML格式的邮件 272
9.2.4 发送带附件的邮件 275
9.3 接收邮件 278
9.3.1 下载邮件 278
9.3.2 解析邮件 283
课堂范例 287
上机实战 290
第10章 图形用户界面 291
10.1 图形用户界面介绍 292
10.2 下载和安装Tkinter 293
10.3 丰富的组件 294
10.3.1 Tk组件及GUI程序构成 294
10.3.2 Label组件 296
10.3.3 Button组件 298
10.3.4 Checkbutton组件 300
10.3.5 Radiobutton组件 302
10.3.6 LabelFrame组件 303
10.3.7 Entry组件 305
10.3.8 Listbox组件 308
10.3.9 Scrollbar组件 310
10.3.10 Scale组件 312
10.3.11 Text组件 313
10.3.12 Canvas组件 315
10.3.13 Menu组件 317
10.3.14 Menubutton组件 319
10.3.15 OptionMenu组件 321
10.3.16 Message组件 323
10.3.17 Spinbox组件 324
10.3.18 PanedWindow组件 326
10.3.19 Toplevel组件 327
10.4 事件的处理 329
10.4.1 事件绑定 329
10.4.2 事件序列 331
10.4.3 Event对象 332
10.5 智能的布局 335
10.5.1 pack布局 335
10.5.2 grid布局 337
10.5.3 place布局 339
10.6 有趣的对话框 342
10.6.1 messagebox消息对话框 342
10.6.2 filedialog文件对话框 344
10.6.3 colorchooser颜色选择对话框 346
课堂范例 347
上机实战 350
第11章 Web开发 351
11.1 HTTP协议 352
11.1.1 简介 352
11.1.2 分析 352
11.1.3 流程 354
11.1.4 格式 354
11.2 前端简介 359
11.2.1 HTML简介 359
11.2.2 CSS简介 362
11.2.3 JavaScript简介 365
11.2.4 jQuery简介 367
11.3 WSGI接口 369
11.3.1 理解WSGI 369
11.3.2 运行WSGI服务 370
课堂范例 372
上机实战 377
第12章 飞机大战 379
12.1 认识pygame 380
12.2 事件的处理 383
12.2.1 理解事件 383
12.2.2 捕捉事件 383
12.3 有趣的功能 385
12.3.1 显示模式 385
12.3.2 调整图像大小 387
12.3.3 转换图像透明度 388
12.3.4 音效 389
12.4 图形的绘制 390
12.4.1 绘制线段 391
12.4.2 绘制矩形 392
12.4.3 绘制多边形 393
12.4.4 绘制圆形 393
12.4.5 绘制椭圆形 394
12.4.6 绘制弧线 395
12.5 碰撞检测 395
12.5.1 动画精灵 395
12.5.2 碰撞检测 398
12.6 飞机大战 399
第13章 每日生鲜 411
13.1 Web项目相关知识 412
13.1.1 电商项目介绍 412
13.1.2 网站的运行流程 412
13.1.3 Django建立网站的优势 413
13.1.4 搭建开发环境 413
13.1.5 小结 417
13.2 商品模块 417
13.2.1 模型类设计 417
13.2.2 首页 421
13.2.3 列表页 423
13.2.4 详情页 425
13.2.5 搜索页 427
13.3 用户模块 428
13.3.1 模型类设计 428
13.3.2 注册 429
13.3.3 登录 433
13.3.4 安全退出 435
13.3.5 个人信息 435
13.3.6 收货地址 437
13.3.7 最近浏览 438
13.4 购物车模块 439
13.4.1 设计模型类 439
13.4.2 购买商品 439
13.4.3 修改 441
13.4.4 删除 443
13.5 订单模块 444
13.5.1 设计模型类 444
13.5.2 下单 445
13.5.3 显示 448
13.5.4 付款 449