本书系统介绍了 Python 语言的主要语法特性,内容设计上注重实战,针对具体知识点设计了简单、易懂的应用案例,同时在每个章节最后设计了一个或多个实训任务,每个实训任务都会根据开发步骤详细阐述编程实现过程。读者可以结合具体的实训任务,在编程实战中快速掌握 Python 编程技术。本书共 14 章,其中第 1~7 章主要介绍 Python 的语法特性,包括 Python 语言概述、Python 语言基础知识、程序控制结构、函数与模块、组合数据类型、面向对象编程、文件操作;第 8~14 章主要介绍 Python在各个应用领域的实战知识,包括网络编程、网络爬虫、数据库编程、数据分析、数据可视化、Pygame 游戏编程、AI 视觉应用——人脸识别。本书内容组织由浅入深,兼顾了 Python 语言的深度和广度,既能满足零基础的初学者,也能满足拥有较高编程目标的专业人员,同时适合作为各类高等院校计算机及相关专业学生的 Python 教材。
达内时代科技集团是国内知名的互联网-IT教育培训单位,是一站式互联网人才基地,专注IT职业教育人才服务多年,拥有300多家培训中心,帮助学员实现一地学习全国就业。本书为达内时代科技集团组织高校老师联合写作,王科飞为吉林工商学院老师,并为本书第一署名作者。
第 1 章 Python 语言概述 1
1.1 初识 Python 语言 1
1.1.1 Python 语言的发展历程 1
1.1.2 Python 语言的特点 2
1.1.3 Python 语言的运行方式 3
1.2 Python 开发环境 4
1.2.1 安装 Python 开发环境 5
1.2.2 了解常用的 Python IDE 10
1.2.3 安装和使用 PyCharm 11
1.3 实训任务——第一个 Python程序 17
1.3.1 任务描述 17
1.3.2 任务分析 17
1.3.3 任务实现 17
本章总结 21
作业与练习 22
第 2 章 Python 语言基础知识 23
2.1 Python 程序的书写规范 23
2.1.1 Python 的语句格式 23
2.1.2 Python 语句的缩进与代码块 25
2.1.3 Python 的注释 26
2.2 Python 的数据类型和变量 27
2.2.1 简单数据类型 27
2.2.2 组合数据类型 31
2.2.3 变量 32
2.3 标识符和关键字 34
2.3.1 标识符 34
2.3.2 关键字 34
2.4 Python 的运算符 35
2.4.1 算术运算符 35
2.4.2 比较运算符 36
2.4.3 逻辑运算符 37
2.4.4 赋值运算符 38
2.4.5 位运算符 39
2.4.6 运算符的优先级 40
2.5 实训任务 1——数据交换 41
2.5.1 任务描述 41
2.5.2 任务分析 41
2.5.3 任务实现 42
2.6 实训任务 2——时间换算 43
2.6.1 任务描述 43
2.6.2 任务分析 43
2.6.3 任务实现 44
2.7 实训任务 3——简单加密算法 44
2.7.1 任务描述 44
2.7.2 任务分析 45
2.7.3 任务实现 45
本章总结 46
作业与练习 46
第 3 章 程序控制结构 48
3.1 基本结构 48
3.1.1 程序流程图 48
3.1.2 程序的基本结构 49
3.2 分支结构 50
3.2.1 单分支结构:if 语句 51
3.2.2 双分支结构:if…else 语句 52
3.2.3 多分支结构:if…elif…else 语句 54
3.3 循环结构 56
3.3.1 遍历循环:for 语句 57
3.3.2 条件循环:while 语句 58
3.3.3 循环嵌套 60
3.4 程序控制的其他语句 61
3.4.1 跳转语句 61
3.4.2 pass 语句 62
3.4.3 循环结构中的 else 语句 63
3.5 程序的异常处理 64
3.5.1 异常的概念 65
3.5.2 Python 的异常类 65
3.5.3 异常处理机制 68
3.6 实训任务 1——数学计算器 73
3.6.1 任务描述 73
3.6.2 任务分析 73
3.6.3 任务实现 73
3.7 实训任务 2——质数生成器 75
3.7.1 任务描述 75
3.7.2 任务分析 75
3.7.3 任务实现 76
3.8 实训任务 3——分解质因数 77
3.8.1 任务描述 77
3.8.2 任务分析 77
3.8.3 任务实现 77
3.9 实训任务 4——猜数游戏 78
3.9.1 任务描述 78
3.9.2 任务分析 78
3.9.3 任务实现 79
本章总结 80
作业与练习 81
第 4 章 函数与模块 83
4.1 函数的定义和调用 83
4.1.1 函数的定义 84
4.1.2 函数的调用 86
4.2 函数的参数和返回值 88
4.2.1 函数的参数传递 88
4.2.2 函数参数标注 92
4.2.3 函数的返回值 93
4.3 函数的递归 94
4.4 Python 内置函数 95
4.5 Python 模块 100
4.5.1 模块的概念 100
4.5.2 模块的分类 101
4.5.3 模块的使用 102
4.5.4 正则表达式模块 106
4.6 实训任务 1——斐波那契数列 109
4.6.1 任务描述 109
4.6.2 任务分析 110
4.6.3 任务实现 110
4.7 实训任务 2——人脸检测与
识别模块 111
4.7.1 任务描述 111
4.7.2 任务分析 112
4.7.3 任务实现 112
本章总结 116
作业与练习 117
第 5 章 组合数据类型 118
5.1 列表 118
5.1.1 列表的基本操作 119
5.1.2 列表的访问 128
5.1.3 列表的遍历 129
5.2 元组 130
5.2.1 元组的基本操作 131
5.2.2 元组与列表的转换 136
5.3 字典 136
5.3.1 字典的基本操作 137
5.3.2 字典的常用方法 141
5.4 集合 142
5.4.1 集合的基本操作 142
5.4.2 集合运算 144
5.5 实训任务 1——计算分数序列 145
5.5.1 任务描述 145
5.5.2 任务分析 145
5.5.3 任务实现 146
5.6 实训任务 2——投票选举班长 147
5.6.1 任务描述 147
5.6.2 任务分析 147
5.6.3 任务实现 147
本章总结 149
作业与练习 150
第 6 章 面向对象编程 151
6.1 面向对象编程概述 151
6.1.1 面向对象编程的基本概念 151
6.1.2 面向对象编程的特点 153
6.2 创建类和对象 154
6.2.1 创建类 154
6.2.2 创建对象 155
6.3 构造方法和析构方法 156
6.3.1 构造方法 156
6.3.2 析构方法 158
6.3.3 self 参数 159
6.3.4 成员变量和类变量 160
6.3.5 类的方法 160
6.4 类的继承 164
6.4.1 继承的实现 164
6.4.2 方法的重写 165
6.4.3 多继承 167
6.5 类的多态 168
6.6 运算符重载 169
6.6.1 加法运算符重载 169
6.6.2 索引和分片重载 170
6.6.3 定制对象的字符串形式 171
6.7 实训任务 1——学生信息管理系统 172
6.7.1 任务描述 172
6.7.2 任务分析 173
6.7.3 任务实现 173
6.8 实训任务 2——员工薪资计算 178
6.8.1 任务描述 178
6.8.2 任务分析 179
6.8.3 任务实现 180
本章总结 184
作业与练习 185
第 7 章 文件操作 187
7.1 文件的概念 187
7.2 文件的打开与关闭 188
7.3 文件的读/写操作 190
7.3.1 读取文件数据 190
7.3.2 向文件写入数据 194
7.3.3 文件的定位读/写 197
7.3.4 读/写二进制文件 199
7.4 文件和目录操作 200
7.4.1 常用的文件操作函数 200
7.4.2 文件的复制、重命名及删除 202
7.4.3 文件的目录操作 203
7.5 使用 CSV 文件格式读/写数据 205
7.5.1 CSV 文件介绍 205
7.5.2 读/写 CSV 文件 206
7.6 使用 JSON 文件格式读/写数据 208
7.6.1 JSON 文件介绍 208
7.6.2 读/写 JSON 文件 209
7.7 实训任务 1——文件管理器 213
7.7.1 任务描述 213
7.7.2 任务分析 213
7.7.3 任务实现 214
7.8 实训任务 2——图书管理系统 220
7.8.1 任务描述 220
7.8.2 任务分析 220
7.8.3 任务实现 220
本章总结 224
作业与练习 224
第 8 章 网络编程 226
8.1 网络编程基础 226
8.1.1 网络参考模型 227
8.1.2 TCP/IP 协议 228
8.1.3 IP 地址 229
8.1.4 端口号 231
8.1.5 Socket 模块 231
8.2 UDP 编程 234
8.2.1 UDP 简介 234
8.2.2 UDP 通信 234
8.3 TCP 编程 236
8.3.1 TCP 简介 236
8.3.2 TCP 通信 237
8.3.3 三次握手和四次挥手 238
8.4 多线程编程 241
8.4.1 进程和线程的概念 241
8.4.2 创建线程的两种方法 242
8.5 同步、异步、阻塞和非阻塞 245
8.5.1 基本概念 245
8.5.2 同步阻塞 246
8.5.3 同步非阻塞 247
8.5.4 异步非阻塞 249
8.6 requests 模块 252
8.6.1 requests 模块的介绍 252
8.6.2 requests 模块的使用 252
8.7 实训任务——网络聊天室 254
8.7.1 任务描述 254
8.7.2 任务分析 254
8.7.3 任务实现 255
本章总结 258
作业与练习 259
第 9 章 网络爬虫 260
9.1 网络爬虫概述 260
9.1.1 网络爬虫的概念 260
9.1.2 网络爬虫的分类 261
9.1.3 网络爬虫的安全性与合规性 262
9.2 使用 Python 获取网页数据 263
9.3 使用 BeautifulSoup 264
9.3.1 BeautifulSoup 的介绍与安装 264
9.3.2 使用 BeautifulSoup对网页进行解析 264
9.3.3 使用 BeautifulSoup解析指定标签数据 266
9.4 数据持久化与请求头 271
9.5 实训任务——图书信息的收集与保存 274
9.5.1 任务描述 274
9.5.2 任务分析 274
9.5.3 任务实现 275
本章总结 277
作业与练习 278
第 10 章 数据库编程 279
10.1 数据库简介 279
10.2 安装 MySQL 数据库 280
10.3 操作 MySQL 数据库 282
10.3.1 常用的 SQL 语句 282
10.3.2 使用 Python 访问 MySQL 284
10.4 实训任务——将图书信息保存到 MySQL 中 290
10.4.1 任务描述 290
10.4.2 任务分析 290
10.4.3 任务实现 291
本章总结 293
作业与练习 294
第 11 章 数据分析 295
11.1 数据分析基础 295
11.1.1 数据分析概述 295
11.1.2 数据分析类别 296
11.2 NumPy 基础 297
11.2.1 NumPy 安装与测试 297
11.2.2 NumPy 数据类型 298
11.2.3 NumPy 数组 300
11.2.4 NumPy 中 ufunc 通用函数 316
11.3 pandas 基础 318
11.3.1 pandas 数据类型 318
11.3.2 pandas 数据表操作 323
11.3.3 pandas 数据统计 331
11.4 SciPy 基础 339
11.5 实训任务——使用 pandas 统计毕业招聘信息 341
11.5.1 任务描述 341
11.5.2 任务分析 342
11.5.3 任务实现 343
本章总结 350
作业与练习 350
第 12 章 数据可视化 352
12.1 数据可视化简介 352
12.1.1 什么是数据可视化 352
12.1.2 为什么要数据可视化 353
12.2 Matplotlib 基础 354
12.2.1 Matplotlib 库和 Gallery 354
12.2.2 绘制折线图 357
12.2.3 绘制散点图 365
12.2.4 绘制柱状图 367
12.2.5 设置图像样式 369
12.3 seaborn 数据可视化进阶 370
12.3.1 基本可视化 371
12.3.2 数据分析与统计可视化 373
12.4 实训任务——连锁店库存数据分析 374
12.4.1 任务描述 374
12.4.2 任务分析 374
12.4.3 任务实现 375
本章总结 378
作业与练习 379
第 13 章 Pygame 游戏编程 380
13.1 Pygame 游戏库 380
13.1.1 Pygame 简介 380
13.1.2 Pygame 安装 381
13.2 Pygame 事件 381
13.2.1 事件的概念 381
13.2.2 事件的检索 382
13.2.3 常用的事件 382
13.2.4 事件案例演示 382
13.3 Pygame 绘图 384
13.3.1 常用函数功能 384
13.3.2 绘图案例演示 386
13.4 实训任务——贪吃蛇游戏实现 387
13.4.1 任务描述 387
13.4.2 任务分析 388
13.4.3 任务实现 388
本章总结 398
作业与练习 399
第 14 章 AI 视觉应用——人脸识别 400
14.1 图像相关知识 400
14.1.1 图像颜色表达 400
14.1.2 HOG 特征 401
14.1.3 卷积神经网络 403
14.2 人脸识别原理 404
14.2.1 人脸检测 404
14.2.2 分析面部特征 405
14.2.3 人脸识别特征提取 406
14.3 实训任务——人脸注册与识别 407
14.3.1 任务描述 407
14.3.2 任务分析 407
14.3.3 任务实现 407
本章总结 415
作业与练习 416