第1篇 基础知识
第1章 初识Python 2
视频讲解:77分钟
1.1 Python简介 2
1.1.1 什么是Python 2
1.1.2 Python的版本 3
1.1.3 Python能做什么 3
1.2 搭建Python开发环境 4
1.2.1 开发环境概述 4
1.2.2 安装Python 5
1.2.3 编写第一个Python程序 9
1.2.4 运行已经编写好的.py文件 10
1.3 Python开发工具 11
1.3.1 使用自带的IDLE 11
1.3.2 使用Visual Studio Code 13
1.3.3 常用的第三方开发工具 19
1.4 实践与练习 20
第2章 Python语言基础 21
视频讲解:145分钟
2.1 Python语法特点 21
2.1.1 注释规则 21
2.1.2 代码缩进 24
2.1.3 编码规范 26
2.2 Python中的变量 27
2.2.1 保留字与标识符 27
2.2.2 理解Python中的变量 29
2.2.3 定义变量 30
2.3 基本数据类型 31
2.3.1 数字 31
2.3.2 字符串 33
2.3.3 布尔类型 34
2.3.4 数据类型转换 35
2.4 基本输入和输出 36
2.4.1 使用input()函数输入 36
2.4.2 使用print()函数输出 37
2.4.3 使用pprint()函数输出 38
2.5 实践与练习 39
第3章 运算符与表达式 40
视频讲解:70分钟
3.1 运算符 40
3.1.1 算术运算符 40
3.1.2 赋值运算符 42
3.1.3 比较(关系)运算符 42
3.1.4 逻辑运算符 43
3.1.5 位运算符 44
3.2 运算符的优先级 46
3.3 条件表达式 47
3.4 实践与练习 47
第4章 流程控制语句 48
视频讲解:139分钟
4.1 程序结构 48
4.2 选择语句 49
4.2.1 最简单的if语句 49
4.2.2 if…else语句 51
4.2.3 if…elif…else语句 53
4.2.4 选择语句的嵌套 54
4.2.5 match…case语句 55
4.3 循环语句 58
4.3.1 while循环 58
4.3.2 for循环 59
4.3.3 循环嵌套 61
4.4 break、continue和pass语句 62
4.4.1 break语句 63
4.4.2 continue语句 64
4.4.3 pass语句 65
4.5 实践与练习 65
第5章 列表和元组 66
视频讲解:202分钟
5.1 序列概述 66
5.1.1 索引 67
5.1.2 切片 67
5.1.3 序列相加 68
5.1.4 乘法 69
5.1.5 检查某个元素是否是序列的成员(元素) 69
5.1.6 计算序列的长度、最大值和最小值 70
5.2 列表 71
5.2.1 列表的创建和删除 71
5.2.2 访问列表元素 73
5.2.3 遍历列表 74
5.2.4 添加、修改和删除列表元素 75
5.2.5 对列表进行统计计算 78
5.2.6 对列表进行排序 79
5.2.7 列表推导式 81
5.2.8 二维列表 83
5.3 元组 85
5.3.1 元组的创建和删除 85
5.3.2 访问元组元素 88
5.3.3 修改元组 89
5.3.4 元组推导式 91
5.3.5 元组与列表的区别 92
5.4 实践与练习 92
第6章 字典和集合 93
视频讲解:86分钟
6.1 字典 93
6.1.1 字典的创建和删除 94
6.1.2 访问字典 96
6.1.3 遍历字典 98
6.1.4 添加、修改和删除字典元素 99
6.1.5 字典推导式 100
6.2 集合 100
6.2.1 创建集合 101
6.2.2 向集合中添加和删除元素 102
6.2.3 集合的交集、并集和差集运算 104
6.3 实践与练习 104
第7章 字符串 105
视频讲解:118分钟
7.1 字符串编码转换 105
7.1.1 使用encode()方法编码 106
7.1.2 使用decode()方法解码 107
7.2 字符串常用操作 107
7.2.1 拼接字符串 107
7.2.2 计算字符串的长度 108
7.2.3 截取字符串 109
7.2.4 分割、合并字符串 110
7.2.5 检索字符串 112
7.2.6 字母的大小写转换 115
7.2.7 去除字符串中的空格和特殊字符 116
7.2.8 格式化字符串 118
7.3 实践与练习 121
第2篇 进阶提高
第8章 Python中使用正则表达式 124
视频讲解:45分钟
8.1 正则表达式语法 124
8.1.1 行定位符 124
8.1.2 元字符 125
8.1.3 限定符 125
8.1.4 字符类 126
8.1.5 排除字符 126
8.1.6 选择字符 126
8.1.7 转义字符 126
8.1.8 分组 127
8.1.9 在Python中使用正则表达式语法 127
8.2 使用re模块实现正则表达式操作 128
8.2.1 匹配字符串 128
8.2.2 替换字符串 132
8.2.3 使用正则表达式分割字符串 132
8.3 实践与练习 133
第9章 函数 134
视频讲解:118分钟
9.1 函数的创建和调用 134
9.1.1 创建一个函数 134
9.1.2 调用函数 136
9.2 参数传递 137
9.2.1 了解形式参数和实际参数 137
9.2.2 位置参数 139
9.2.3 关键字参数 141
9.2.4 为参数设置默认值 141
9.2.5 可变参数 143
9.2.6 类型联合运算符 145
9.3 返回值 145
9.4 变量的作用域 147
9.4.1 局部变量 147
9.4.2 全局变量 147
9.5 匿名函数 149
9.6 实践与练习 151
第10章 面向对象程序设计 152
视频讲解:109分钟
10.1 面向对象概述 152
10.1.1 对象 153
10.1.2 类 153
10.1.3 面向对象程序设计的特点 153
10.2 类的定义和使用 155
10.2.1 定义类 155
10.2.2 创建类的实例 155
10.2.3 创建__init__()方法 156
10.2.4 创建类的成员并访问 157
10.2.5 访问限制 161
10.3 属性 161
10.3.1 创建用于计算的属性 161
10.3.2 为属性添加安全保护机制 162
10.4 继承 164
10.4.1 继承的基本语法 164
10.4.2 方法重写 165
10.4.3 派生类中调用基类的__init__()方法 166
10.5 实践与练习 167
第11章 模块 168
视频讲解:105分钟
11.1 模块概述 168
11.2 自定义模块 169
11.2.1 创建模块 169
11.2.2 使用import语句导入模块 170
11.2.3 使用from…import语句导入模块 170
11.2.4 模块搜索目录 173
11.3 Python中的包 175
11.3.1 Python程序的包结构 175
11.3.2 创建和使用包 175
11.3.3 以主程序的形式执行 178
11.4 引用其他模块 180
11.4.1 导入和使用标准模块 180
11.4.2 第三方模块的下载与安装 181
11.5 实践与练习 182
第12章 文件及目录操作 183
视频讲解:140分钟
12.1 基本文件操作 183
12.1.1 创建和打开文件 184
12.1.2 关闭文件 186
12.1.3 打开文件时使用with语句 186
12.1.4 写入文件内容 187
12.1.5 读取文件 188
12.2 目录操作 192
12.2.1 os和os.path模块 192
12.2.2 路径 193
12.2.3 判断目录是否存在 195
12.2.4 创建目录 195
12.2.5 删除目录 197
12.2.6 遍历目录 197
12.3 高级文件操作 199
12.3.1 删除文件 199
12.3.2 重命名文件和目录 200
12.3.3 获取文件基本信息 201
12.4 实践与练习 202
第13章 操作数据库 203
视频讲解:79分钟
13.1 数据库编程接口 203
13.1.1 连接对象 203
13.1.2 游标对象 204
13.2 使用SQLite 205
13.2.1 创建数据库文件 205
13.2.2 操作SQLite 206
13.3 使用MySQL 209
13.3.1 下载和安装MySQL 209
13.3.2 安装PyMySQL 213
13.3.3 连接数据库 214
13.3.4 创建数据表 214
13.3.5 操作MySQL数据表 215
13.4 实践与练习 216
第14章 使用进程和线程 217
视频讲解:104分钟
14.1 什么是进程 217
14.2 创建进程的常用方式 218
14.2.1 使用multiprocessing模块创建进程 218
14.2.2 使用Process子类创建进程 220
14.2.3 使用进程池Pool创建进程 221
14.3 进程间通信 223
14.3.1 队列简介 224
14.3.2 多进程队列的使用 224
14.3.3 使用队列在进程间通信 226
14.4 什么是线程 227
14.5 创建线程 227
14.5.1 使用threading模块创建线程 227
14.5.2 使用Thread子类创建线程 228
14.6 线程间通信 229
14.6.1 什么是互斥锁 229
14.6.2 使用互斥锁 230
14.6.3 使用队列在线程间进行通信 231
14.7 异步编程asyncio模块 232
14.7.1 什么是异步编程 232
14.7.2 创建协程任务 234
14.7.3 使用协程执行多个耗时任务 235
14.7.4 协程嵌套与列表推导式 235
14.8 实践与练习 236
第15章 网络编程 237
视频讲解:60分钟
15.1 网络基础 237
15.1.1 为什么要使用通信协议 237
15.1.2 TCP/IP简介 238
15.1.3 UDP简介 239
15.1.4 socket简介 239
15.2 TCP编程 241
15.2.1 创建TCP服务器 241
15.2.2 创建TCP客户端 242
15.2.3 执行TCP服务器和客户端 243
15.3 UDP编程 245
15.3.1 创建UDP服务器 245
15.3.2 创建UDP客户端 246
15.3.3 执行UDP服务器和客户端 247
15.4 实践与练习 247
第16章 异常处理及程序调试 248
视频讲解:60分钟
16.1 异常概述 248
16.2 异常处理语句 250
16.2.1 try…except语句 250
16.2.2 try…except…else语句 252
16.2.3 try…except…finally语句 252
16.2.4 使用raise语句抛出异常 253
16.2.5 更清晰的错误信息 255
16.3 程序调试 255
16.3.1 使用自带的IDLE进行程序调试 255
16.3.2 使用assert语句调试程序 258
16.4 实践与练习 259
第3篇 项目应用
游戏开发与项目
第17章 Pygame游戏编程 263
视频讲解:50分钟
17.1 初识Pygame 263
17.1.1 安装Pygame 264
17.1.2 Pygame常用模块 265
17.2 窗口坐标系与pygame.Rect对象 266
17.2.1 窗口坐标系 266
17.2.2 pygame.Rect对象 266
17.3 事件侦测 266
17.3.1 事件检索 266
17.3.2 处理键盘事件 269
17.3.3 自定义事件 271
17.4 位图图形 272
17.4.1 位图基础 272
17.4.2 Surface对象 272
17.4.3 Rect矩形对象 276
17.5 音频控制 283
17.5.1 设备的初始化 283
17.5.2 加载声音文件 284
17.5.3 控制声音流 284
第18章 推箱子游戏 289
视频讲解:3分钟
18.1 需求分析 289
18.2 案例准备 290
18.3 业务流程 290
18.4 实现过程 291
18.4.1 文件夹组织结构 291
18.4.2 搭建主框架 291
18.4.3 绘制游戏地图 293
18.4.4 用键盘控制角色移动 297
18.4.5 判断游戏是否通关 302
18.4.6 记录步数 302
18.4.7 撤销角色已移动功能 303
18.4.8 重玩此关的实现 305
18.4.9 游戏进入下一关 305
爬虫开发与项目
第19章 网络爬虫开发 308
视频讲解:90分钟
19.1 初识网络爬虫 308
19.1.1 网络爬虫概述 308
19.1.2 网络爬虫的分类 308
19.1.3 网络爬虫的基本原理 309
19.2 网络爬虫的常用技术 310
19.2.1 Python的网络请求 310
19.2.2 请求headers处理 312
19.2.3 网络超时 313
19.2.4 代理服务 314
19.2.5 HTML解析之BeautifulSoup 315
19.3 网络爬虫开发常用框架Scrapy 317
19.3.1 安装Scrapy爬虫框架 317
19.3.2 创建Scrapy项目 318
19.3.3 创建爬虫 319
第20章 火车票分析助手 321
视频讲解:4分钟
20.1 需求分析 321
20.2 案例准备 323
20.3 业务流程 323
20.4 主窗体的UI设计 323
20.4.1 主窗体的布局 323
20.4.2 主窗体显示效果 329
20.5 爬取数据 330
20.5.1 获取请求地址与参数 330
20.5.2 下载数据文件 332
20.5.3 查询所有车票信息 336
20.5.4 卧铺票的查询与分析 338
20.5.5 查询车票起售时间 340
20.6 窗体的数据显示 342
20.6.1 车票查询区域的数据显示 342
20.6.2 卧铺售票分析区域的数据显示 344
20.6.3 卧铺车票数量走势图的显示 347
20.6.4 查询车票起售时间的数据显示 349
数据可视化与项目
第21章 数据可视化 353
视频讲解:225分钟
21.1 初识数据可视化 353
21.1.1 什么是数据可视化 353
21.1.2 数据可视化的作用 353
21.1.3 数据可视化常用工具 354
21.2 NumPy数值计算 355
21.2.1 安装NumPy 355
21.2.2 NumPy的数据类型 355
21.2.3 ndarray数组对象 356
21.2.4 dtype数据类型对象 357
21.2.5 数组的基本操作 357
21.3 pandas数据处理 362
21.3.1 pandas数据结构 362
21.3.2 读写数据 366
21.3.3 数据操作 371
21.4 Matplotlib绘制常用图表 377
21.4.1 绘制柱形图 377
21.4.2 绘制折线图 378
21.4.3 绘制散点图 379
21.4.4 绘制饼形图 380
第22章 京东电商销售数据分析与预测 382
视频讲解:3分钟
22.1 需求分析 382
22.2 案例准备 383
22.3 业务流程 383
22.4 分析方法 384
22.5 实现过程 385
22.5.1 日期数据统计并显示 385
22.5.2 销售收入分析 386
22.5.3 销售收入与广告费相关性分析 386
22.5.4 销售收入预测 389
22.5.5 预测评分 390
Web开发与项目
第23章 Web编程 392
视频讲解:93分钟
23.1 Web基础 392
23.1.1 HTTP协议 392
23.1.2 Web服务器 393
23.1.3 前端基础 395
23.1.4 静态服务器 397
23.2 WSGI接口 401
23.2.1 CGI简介 401
23.2.2 WSGI简介 401
23.2.3 定义WSGI接口 402
23.2.4 运行WSGI服务 403
23.3 Web框架 405
23.3.1 什么是Web框架 405
23.3.2 Python中常用的Web框架 406
第24章 Flask框架 407
视频讲解:75分钟
24.1 Flask简介 407
24.1.1 安装虚拟环境 407
24.1.2 安装Flask 408
24.1.3 第一个Flask程序 409
24.2 Flask基础 410
24.2.1 开启调试模式 410
24.2.2 路由 410
24.2.3 静态文件 412
24.2.4 蓝图 413
24.3 模板 413
24.3.1 渲染模板 413
24.3.2 变量 415
24.3.3 控制结构 415
24.4 Web表单 417
24.4.1 CSRF保护和验证 417
24.4.2 表单类 418
24.4.3 把表单渲染成HTML 419
第25章 e起去旅行网站 422
视频讲解:147分钟
25.1 系统功能设计 422
25.1.1 系统功能结构 422
25.1.2 系统业务流程 423
25.2 系统开发必备 424
25.2.1 系统开发环境 424
25.2.2 文件夹组织结构 424
25.3 数据库设计 425
25.3.1 数据库概要说明 425
25.3.2 数据表模型 425
25.3.3 数据表关系 426
25.4 前台用户模块设计 427
25.4.1 会员注册功能实现 427
25.4.2 会员登录功能实现 433
25.4.3 会员退出功能实现 434
25.5 前台首页模块设计 434
25.5.1 推荐景区功能实现 436
25.5.2 推荐地区功能实现 437
25.5.3 搜索景区功能实现 438
25.6 景区模块设计 441
25.6.1 查看景区功能实现 441
25.6.2 查看游记功能实现 443
25.6.3 收藏景区功能实现 444
25.6.4 查看收藏景区功能实现 447
25.7 关于我们模块设计 450
25.8 后台模块设计 453
25.8.1 管理员登录功能实现 453
25.8.2 景区管理功能实现 454
25.8.3 地区管理功能实现 464
25.8.4 游记管理功能实现 464
25.8.5 会员管理功能实现 465
25.8.6 日志管理功能实现 465
Python自动化办公
第26章 Python自动化办公 468
视频讲解:31分钟
26.1 使用Python操作Word 468
26.1.1 将Word文件转换为PDF文件 468
26.1.2 将多个Word文件合并为一个PDF文件 470
26.1.3 提取Word文档目录 472
26.1.4 替换Word文档中的内容 473
26.1.5 统计并汇总Word文档中的页码 475
26.2 使用Python操作Excel 477
26.2.1 爬取数据并将其导出到Excel中 477
26.2.2 批量复制Excel中的Sheet页 480
26.3 使用Python操作PPT 482
26.4 使用Python操作电子邮件 484
26.4.1 发送HTML格式电子邮件 484
26.4.2 发送带附件的电子邮件 485
Python人工智能初探
第27章 AI图像识别工具 488
视频讲解:94分钟
27.1 需求分析 488
27.2 系统设计流程 488
27.3 系统开发必备 489
27.3.1 系统开发环境 489
27.3.2 文件夹组织结构 489
27.4 开发前的准备工作 489
27.4.1 申请百度AI接口 490
27.4.2 urllib、urllib.request模块 491
27.4.3 json模块 492
27.5 AI图像识别工具的开发 492
27.5.1 根据项目设计制作窗体 492
27.5.2 添加分类 493
27.5.3 选择识别的图片 493
27.5.4 银行卡图像识别 495
27.5.5 植物图像识别 496
27.5.6 复制识别结果到剪贴板中 497
附录A PyCharm开发工具的使用 498