第1篇 基础知识 2
第1章 初识Python 2
1.1 Python简介 3
1.1.1 什么是Python 3
1.1.2 Python的版本 4
1.1.3 Python都能做什么 5
1.2 搭建Python开发环境 7
1.2.1 开发环境概述 7
1.2.2 安装Python 7
1.2.3 第一个Python程序 12
1.2.4 运行已经编写好的.Py文件 14
1.3 Python开发工具 15
1.3.1 使用自带的IDLE 15
1.3.2 常用的第三方开发工具 18
1.4 小结 20
第2章 Python语言基础 21
2.1 Python语法特点 22
2.1.1 注释规则 22
2.1.2 代码缩进 26
2.1.3 编码规范 28
2.2 Python中的变量 30
2.2.1 保留字与标识符 30
2.2.2 理解Python中的变量 33
2.2.3 定义变量 34
2.3 基本数据类型 35
2.3.1 数字 35
2.3.2 字符串 38
2.3.3 布尔类型 40
2.3.4 数据类型转换 40
2.4 基本输入和输出 42
2.4.1 使用input()函数输入 42
2.4.2 使用print()函数输出 43
2.5 小结 44
第3章 运算符与表达式 45
3.1 运算符 46
3.1.1 算术运算符 46
3.1.2 赋值运算符 47
3.1.3 比较(关系)运算符 48
3.1.4 逻辑运算符 49
3.1.5 位运算符 51
3.2 运算符的优先级 54
3.3 条件表达式 55
3.4 小结 56
第4章 流程控制语句 57
4.1 程序结构 58
4.2 选择语句 59
4.2.1 最简单的if语句 59
4.2.2 if...else语句 61
4.2.3 if...elif...else语句 64
4.2.4 if语句的嵌套 66
4.3 循环语句 68
4.3.1 while循环 68
4.3.2 for循环 69
4.3.3 循环嵌套 72
4.4 break、continue和pass语句 74
4.4.1 break语句 74
4.4.2 continue语句 76
4.4.3 pass语句 77
4.5 小结 78
第5章 列表与元组 79
5.1 序列概述 80
5.1.1 索引 80
5.1.2 切片 81
5.1.3 序列相加 82
5.1.4 乘法 82
5.1.5 检查某个元素是否是序列的成员(元素) 83
5.1.6 计算序列的长度、最大值和最小值 83
5.2 列表 84
5.2.1 列表的创建和删除 85
5.2.2 访问列表元素 87
5.2.3 遍历列表 88
5.2.4 添加、修改和删除列表元素 90
5.2.5 对列表进行统计计算 94
5.2.6 对列表进行排序 96
5.2.7 列表推导式 98
5.2.8 二维列表 99
5.3 元组 103
5.3.1 元组的创建和删除 103
5.3.2 访问元组元素 106
5.3.3 修改元组 108
5.3.4 元组推导式 109
5.3.5 元组与列表的区别 111
5.4 小结 111
第6章 字典与集合 112
6.1 字典 113
6.1.1 字典的创建和删除 113
6.1.2 访问字典 116
6.1.3 遍历字典 119
6.1.4 添加、修改和删除字典元素 120
6.1.5 字典推导式 121
6.2 集合 122
6.2.1 创建集合 122
6.2.2 向集合中添加和删除元素 124
6.2.3 集合的交集、并集和差集运算 126
6.3 小结 127
第7章 字符串 128
7.1 字符串编码转换 129
7.1.1 使用encode()方法编码 129
7.1.2 使用decode()方法解码 130
7.2 字符串常用操作 131
7.2.1 拼接字符串 131
7.2.2 计算字符串的长度 132
7.2.3 截取字符串 133
7.2.4 分割、合并字符串 135
7.2.5 检索字符串 137
7.2.6 字母的大小写转换 141
7.2.7 去除字符串中的空格和特殊字符 142
7.2.8 格式化字符串 145
7.3 小结 148
第2篇 进阶提高 150
第8章 Python中使用正则表达式 150
8.1 正则表达式语法 151
8.1.1 行定位符 151
8.1.2 元字符 151
8.1.3 重复 152
8.1.4 字符类 152
8.1.5 排除字符 153
8.1.6 选择字符 153
8.1.7 转义字符 153
8.1.8 分组 154
8.1.9 在Python中使用正则表达式语法 154
8.2 使用re模块实现正则表达式操作 155
8.2.1 匹配字符串 155
8.2.2 替换字符串 160
8.2.3 使用正则表达式分割字符串 161
8.3 小结 162
第9章 函数 163
9.1 函数的创建和调用 164
9.1.1 创建一个函数 164
9.1.2 调用函数 166
9.2 参数传递 167
9.2.1 了解形式参数和实际参数 167
9.2.2 位置参数 170
9.2.3 关键字参数 172
9.2.4 为参数设置默认值 172
9.2.5 可变参数 174
9.3 返回值 178
9.4 变量的作用域 179
9.4.1 局部变量 180
9.4.2 全局变量 180
9.5 匿名函数 182
9.6 小结 184
第10章 面向对象程序设计 185
10.1 面向对象概述 186
10.1.1 对象 186
10.1.2 类 187
10.1.3 面向对象程序设计的特点 187
10.2 类的定义和使用 189
10.2.1 定义类 189
10.2.2 创建类的实例 190
10.2.3 创建_init_()方法 190
10.2.4 创建类的成员并访问 192
10.2.5 访问限制 197
10.3 属性 198
10.3.1 创建用于计算的属性 198
10.3.2 为属性添加安全保护机制 199
10.4 继承 201
10.4.1 继承的基本语法 201
10.4.2 方法重写 203
10.4.3 派生类中调用基类的_init_()方法 204
10.5 小结 206
第11章 模块 207
11.1 模块概述 208
11.2 自定义模块 208
11.2.1 创建模块 208
11.2.2 使用import语句导入模块 209
11.2.3 使用from...import语句导入模块 210
11.2.4 模块搜索目录 213
11.3 Python中的包 216
11.3.1 Python程序的包结构 216
11.3.2 创建和使用包 217
11.3.3 以主程序的形式执行 221
11.4 引用其他模块 224
11.4.1 导入和使用标准模块 224
11.4.2 第三方模块的下载与安装 226
11.5 小结 228
第12章 异常处理及程序调试 229
12.1 异常概述 230
12.2 异常处理语句 232
12.2.1 try...except语句 232
12.2.2 try...except...else语句 235
12.2.3 try...except...finally语句 236
12.2.4 使用raise语句抛出异常 238
12.3 程序调试 240
12.3.1 使用自带的IDLE进行程序调试 240
12.3.2 使用assert语句调试程序 244
12.4 小结 246
第13章 文件及目录操作 247
13.1 基本文件操作 248
13.1.1 创建和打开文件 248
13.1.2 关闭文件 251
13.1.3 打开文件时使用with语句 252
13.1.4 写入文件内容 252
13.1.5 读取文件 255
13.2 目录操作 260
13.2.1 os和os.path模块 260
13.2.2 路径 262
13.2.3 判断目录是否存在 264
13.2.4 创建目录 265
13.2.5 删除目录 267
13.2.6 遍历目录 268
13.3 高级文件操作 270
13.3.1 删除文件 271
13.3.2 重命名文件和目录 272
13.3.3 获取文件基本信息 273
13.4 小结 275
第14章 操作数据库 276
14.1 数据库编程接口 277
14.1.1 连接对象 277
14.1.2 游标对象 278
14.2 使用SQLite 279
14.2.1 创建数据库文件 279
14.2.2 操作SQLite 280
14.3 使用MySQL 284
14.3.1 下载安装MySQL 284
14.3.2 安装PyMySQL 290
14.3.3 连接数据库 290
14.3.4 创建数据表 291
14.3.5 操作MySQL数据表 292
14.4 小结 294
第3篇 高级应用 296
第15章 GUI界面编程 296
15.1 初识GUI 297
15.1.1 什么是GUI 297
15.1.2 常用的GUI框架 297
15.1.3 安装wxPython 298
15.2 创建应用程序 299
15.2.1 创建一个wx.App的子类 299
15.2.2 直接使用wx.App 300
15.2.3 使用wx.Frame框架 301
15.3 常用控件 302
15.3.1 StaticText文本类 302
15.3.2 TextCtrl输入文本类 305
15.3.3 Button按钮类 306
15.4 BoxSizer布局 308
15.4.1 什么是BoxSizer 308
15.4.2 使用BoxSizer布局 308
15.5 事件处理 312
15.5.1 什么是事件 312
15.5.2 绑定事件 312
15.6 小结 314
第16章 Pygame游戏编程 315
16.1 初识Pygame 316
16.1.1 安装Pygame 316
16.1.2 Pygame常用模块 317
16.2 Pygame基本使用 319
16.3 开发Flappy Bird游戏 324
16.3.1 游戏简介 324
16.3.2 游戏分析 325
16.3.3 搭建主框架 325
16.3.4 创建小鸟类 327
16.3.5 创建管道类 329
16.3.6 计算得分 331
16.3.7 碰撞检测 333
16.4 小结 335
第17章 网络爬虫开发 336
17.1 初识网络爬虫 337
17.1.1 网络爬虫概述 337
17.1.2 网络爬虫的分类 337
17.1.3 网络爬虫的基本原理 338
17.2 网络爬虫的常用技术 339
17.2.1 Python的网络请求 339
17.2.2 请求headers处理 342
17.2.3 网络超时 343
17.2.4 代理服务 344
17.2.5 HTML解析之BeautifulSoup 345
17.3 网络爬虫开发常用框架 348
17.3.1 Scrapy爬虫框架 348
17.3.2 Crawley爬虫框架 349
17.3.3 PySpider爬虫框架 349
17.4 实战项目:快手爬票 350
17.4.1 快手爬票概述 350
17.4.2 搭建QT环境 351
17.4.3 主窗体设计 355
17.4.4 分析网页请求参数 364
17.4.5 下载站名文件 366
17.4.6 车票信息的请求与显示 369
17.5 小结 376
第18章 使用进程和线程 377
18.1 什么是进程 378
18.2 创建进程的常用方式 379
18.2.1 使用multiprocessing模块创建进程 379
18.2.2 使用Process子类创建进程 382
18.2.3 使用进程池Pool创建进程 384
18.3 进程间通信 386
18.3.1 队列简介 388
18.3.2 多进程队列的使用 388
18.3.3 使用队列在进程间通信 390
18.4 什么是线程 391
18.5 创建线程 391
18.5.1 使用threading模块创建线程 392
18.5.2 使用Thread子类创建线程 393
18.6 线程间通信 394
18.6.1 什么是互斥锁 395
18.6.2 使用互斥锁 396
18.6.3 使用队列在线程间通信 398
18.7 小结 400
第19章 网络编程 401
19.1 网络基础 402
19.1.1 为什么要使用通信协议 402
19.1.2 TCP/IP简介 402
19.1.3 UDP简介 404
19.1.4 Socket简介 405
19.2 TCP编程 406
19.2.1 创建TCP服务器 406
19.2.2 创建TCP客户端 408
19.2.3 执行TCP服务器和客户端 409
19.3 UDP编程 411
19.3.1 创建UDP服务器 412
19.3.2 创建UDP客户端 412
19.3.3 执行UDP服务器和客户端 413
19.4 小结 414
第20章 Web编程 415
20.1 Web基础 416
20.1.1 HTTP协议 416
20.1.2 Web服务器 416
20.1.3 前端基础 419
20.1.4 静态服务器 421
20.2 WSGI接口 426
20.2.1 CGI简介 426
20.2.2 WSGI简介 427
20.2.3 定义WSGI接口 428
20.2.4 运行WSGI服务 428
20.3 Web框架 431
20.3.1 什么是Web框架 431
20.3.2 Python中常用的Web框架 431
20.4 小结 432
第21章 Flask框架 433
21.1 Flask简介 434
21.1.1 安装虚拟环境 434
21.1.2 安装Flask 435
21.1.3 第一个Flask程序 436
21.2 Flask基础 437
21.2.1 开启调试模式 437
21.2.2 路由 438
21.2.3 静态文件 440
21.2.4 蓝图 441
21.3 模板 441
21.3.1 渲染模板 441
21.3.2 变量 443
21.3.3 控制结构 444
21.4 Web表单 446
21.4.1 CSRF保护和验证 446
21.4.2 表单类 447
21.4.3 把表单渲染成HTML 449
21.5 小结 452
第4篇 项目实战 454
第22章 e起去旅行网站 454
22.1 系统功能设计 455
22.1.1 系统功能结构 455
22.1.2 系统业务流程 455
22.2 系统开发必备 456
22.2.1 系统开发环境 456
22.2.2 文件夹组织结构 456
22.3 数据库设计 458
22.3.1 数据库概要说明 458
22.3.2 数据表模型 458
22.3.3 数据表关系 460
22.4 前台用户模块设计 460
22.4.1 会员注册功能实现 460
22.4.2 会员登录功能实现 468
22.4.3 会员退出功能实现 470
22.5 前台首页模块设计 470
22.5.1 推荐景区功能实现 472
22.5.2 推荐地区功能实现 474
22.5.3 搜索景区功能实现 475
22.6 景区模块设计 478
22.6.1 查看景区功能实现 478
22.6.2 查看游记功能实现 481
22.6.3 收藏景区功能实现 482
22.6.4 查看收藏景区功能实现 485
22.7 关于我们模块设计 488
22.8 后台模块设计 492
22.8.1 管理员登录功能实现 492
22.8.2 景区管理功能实现 493
22.8.3 地区管理功能实现 505
22.8.4 游记管理功能实现 505
22.8.5 会员管理功能实现 506
22.8.6 日志管理功能实现 507
22.9 小结 508