本书注重对高职学生实践能力的培养,采用项目驱动、任务教学、案例讲解的方式,结合当前Python程序设计在人工智能领域的应用现状及高职院校学生的实际情况,全面介绍了Python环境配置、Python基础知识、Python数据处理、Python综合应用、人工智能入门5个方面的相关知识,包括Python开发环境配置、Python基础语句、Python序列、选择与判断、循环与跳转、函数设计、面向对象程序设计、处理程序错误和异常、文件操作、科学计算基础、数据运算操作、爬虫基础、GUI编程、机器学习入门、计算机视觉入门、自然语言处理入门等16个项目,每个项目均包含4个任务,注重理论联系实际,培养学生的综合实践能力。
傅贤君,1994年出生,男、东北大学硕士毕业,人工智能技术应用专业负责人,从事图像算法开发多年,具有丰富的图像识别、分割及目标检测领域相关知识,在国内外知名会议、期刊发表相关论文多篇,拥有专利5项。
项目1 Python开发环境配置 1
任务1 认识Python语言 1
1.1.1 Python语言的诞生过程 2
1.1.2 Python语言的特性 3
1.1.3 Python语言的应用领域 4
任务2 配置Python开发环境 6
任务3 安装Python语言第三方模块 9
1.3.1 安装NumPy模块 9
1.3.2 安装OpenCV模块 9
1.3.3 安装Pandas模块 10
1.3.4 安装requests模块 10
1.3.5 安装urllib3模块 10
1.3.6 安装BeautifulSoup模块 11
1.3.7 安装Scikit-learn模块 11
1.3.8 安装NLTK模块 11
1.3.9 安装jieba模块 11
任务4 Python开发工具 12
1.4.1 Python开发工具介绍 12
1.4.2 Jupyter Notebook的安装与使用 13
习题 16
项目2 Python基础语句 17
任务1 基本变量的赋值 17
2.1.1 标识符 18
2.1.2 保留关键字 18
2.1.3 数据类型 18
2.1.4 变量 19
2.1.5 赋值 20
2.1.6 用户输入 20
任务2 运算符与表达式 22
2.2.1 运算符 22
2.2.2 表达式 25
任务3 使用内置函数 26
2.3.1 内置函数的定义和作用 26
2.3.2 常见的内置函数 27
任务4 代码格式规范 28
2.4.1 缩进 29
2.4.2 注释 29
2.4.3 换行 30
习题 31
项目3 Python序列 33
任务1 字符串 33
3.1.1 字符串的定义 34
3.1.2 转义字符 35
3.1.3 字符串格式化 36
3.1.4 字符串的访问方法 38
3.1.5 字符串的基本操作符 39
3.1.6 内置的字符串处理方法 39
任务2 列表 42
3.2.1 列表概述 42
3.2.2 列表的操作 43
3.2.3 删除列表中的元素 44
3.2.4 向列表中添加元素 44
3.2.5 查找列表中的元素 45
任务3 元组 47
3.3.1 元组概述 47
3.3.2 元组的访问 48
3.3.3 修改元组中的元素 49
3.3.4 元组的内置函数 49
任务4 字典 51
3.4.1 字典概述 51
3.4.2 字典的访问 53
3.4.3 字典的修改 53
3.4.4 字典的内置函数 54
习题 56
项目4 选择与判断 58
任务1 条件表达式 58
4.1.1 条件表达式的语法格式 59
4.1.2 条件表达式的应用 59
任务2 单分支语句 60
4.2.1 单分支语句的语法格式 61
4.2.2 单分支语句的应用 61
任务3 多分支语句 63
4.3.1 双分支语句的语法格式 63
4.3.2 多分支语句的语法格式 64
任务4 if嵌套语句 66
4.4.1 if嵌套语句的语法格式 66
4.4.2 if嵌套语句的应用 67
习题 68
项目5 循环与跳转 70
任务1 while循环语句 70
5.1.1 while循环语句的语法格式 71
5.1.2 while循环语句的应用 71
任务2 for循环语句 72
5.2.1 for循环语句的语法格式 73
5.2.2 for循环语句的应用 73
任务3 跳转语句 75
5.3.1 循环结构中else语句的用法 75
5.3.2 break语句的应用 76
5.3.3 continue语句的应用 77
任务4 嵌套循环 78
5.4.1 嵌套循环的语法格式 79
5.4.2 嵌套循环的应用 79
习题 81
项目6 函数设计 83
任务1 函数的定义与调用 84
任务2 函数的参数传递与返回值 86
6.2.1 位置参数的传递 86
6.2.2 关键字参数的传递 86
6.2.3 默认参数的传递 86
6.2.4 混合传递 87
6.2.5 函数的返回值 87
任务3 变量作用域 89
6.3.1 局部变量和全局变量 89
6.3.2 关键字global和nonlocal 90
6.3.3 LEGB原则 91
任务4 特殊形式的函数 93
6.4.1 匿名函数 93
6.4.2 递归函数 94
6.4.3 生成器函数 94
习题 95
项目7 面向对象程序设计 97
任务1 类和对象的概念与定义 97
7.1.1 面向对象概述 98
7.1.2 类的定义 98
7.1.3 对象的创建与使用 99
任务2 类的属性与方法 100
7.2.1 类的属性 100
7.2.2 类的方法 101
任务3 类的特殊方法 104
7.3.1 常见的特殊方法 104
7.3.2 构造方法 105
7.3.3 析构方法 105
任务4 继承与多态 107
7.4.1 单继承 108
7.4.2 重写 108
7.4.3 多继承 109
7.4.4 多态 110
习题 114
项目8 处理程序错误和异常 115
任务1 异常的概念 116
8.1.1 认识异常 116
8.1.2 异常的常见类型 116
任务2 处理异常的方法 117
8.2.1 try-except语句 118
8.2.2 try-except-else语句 119
8.2.3 try-finally语句 119
任务3 静默失败 121
8.3.1 静默失败的概念 121
8.3.2 静默失败的实现方法 122
任务4 raise语句 123
8.4.1 raise语句介绍 124
8.4.2 使用raise语句可以引发的异常 124
习题 126
项目9 文件操作 127
任务1 文件的基本类型 127
9.1.1 计算机文件 128
9.1.2 计算机文件的类型 128
9.1.3 文本文件的打开与关闭 128
9.1.4 二进制文件的打开与关闭 130
任务2 文件的读取与写入 131
9.2.1 文件的读取 131
9.2.2 文件的写入 133
任务3 os模块与shutil模块 134
9.3.1 文件与目录 135
9.3.2 os模块 135
9.3.3 shutil模块 136
任务4 文本内容操作 137
9.4.1 文本光标 138
9.4.2 seek()方法 138
9.4.3 列表数据的写入 138
习题 139
项目10 科学计算基础 140
任务1 构建科学计算数组 140
10.1.1 Numpy数组 141
10.1.2 创建数组 142
10.1.3 数组的基本属性 142
10.1.4 创建特殊的数组 143
10.1.5 创建随机数组 146
任务2 获取数据切片 149
10.2.1 一维数组的索引与切片 150
10.2.2 多维数组的索引与切片 151
任务3 数据搜索与筛选 152
10.3.1 布尔索引 152
10.3.2 数据搜索 153
任务4 计算数组的基础统计信息 156
习题 162
项目11 数据运算操作 164
任务1 修改数据集合 164
11.1.1 在数组中添加与删除元素 165
11.1.2 修改数组的形状 165
11.1.3 展平数组 167
11.1.4 分割数组 168
11.1.5 组合数组 170
任务2 数组运算操作 172
11.2.1 数组运算 172
11.2.2 广播运算 175
任务3 Pandas基本操作 176
11.3.1 Series对象 177
11.3.2 DataFrame对象 178
11.3.3 常用属性 179
任务4 Pandas数据处理 181
11.4.1 数据访问 181
11.4.2 数据处理 184
11.4.3 数据统计 188
习题 190
项目12 爬虫基础 191
任务1 爬虫简介 191
12.1.1 爬虫基础 192
12.1.2 HTML基础 192
12.1.3 发起HTTP请求 193
12.1.4 发送POST请求 194
任务2 爬取文字 195
12.2.1 获取网页内容 195
12.2.2 解析网页文件 196
12.2.3 获取新闻标题 196
12.2.4 保存文本 197
任务3 爬取图片 198
12.3.1 解析图片地址 198
12.3.2 保存图片 199
任务4 requests爬虫 201
12.4.1 requests基本操作 201
12.4.2 BeautifulSoup模块的用法 202
12.4.3 爬取电影数据 203
习题 206
项目13 GUI编程 207
任务1 组件介绍 207
13.1.1 GUI的概念 208
13.1.2 Tkinter模块 208
13.1.3 常用的组件 208
任务2 组件放置 210
13.2.1 窗口的创建与设置 210
13.2.2 各类组件的使用与放置 211
任务3 组件的布局 223
13.3.1 布局 223
13.3.2 Pack布局 223
13.3.3 Grid布局 224
13.3.4 Place布局 224
任务4 组件交互 227
13.4.1 组件交互 228
13.4.2 事件处理器 228
13.4.3 事件绑定 228
习题 233
项目14 机器学习入门 234
任务1 电影数据分析 234
14.1.1 数据预处理 235
14.1.2 一元线性回归模型 235
14.1.3 模型训练 235
14.1.4 模型预测 235
任务2 根据身高和体重判断性别 237
14.2.1 数据预处理 238
14.2.2 逻辑回归模型 238
14.2.3 模型训练 238
14.2.4 模型预测 239
任务3 根据身高和体重判断肥胖程度 240
14.3.1 数据预处理 241
14.3.2 支持向量机模型 241
14.3.3 模型训练 241
14.3.4 模型预测 242
任务4 鸢尾花分类 243
14.4.1 数据预处理 243
14.4.2 K近邻模型 244
14.4.3 模型训练 244
14.4.4 模型预测 244
习题 245
项目15 计算机视觉入门 247
任务1 数字图像处理基础 247
15.1.1 读取图像 248
15.1.2 显示图像 248
15.1.3 保存图像 249
任务2 为单寸照片替换背景 250
15.2.1 RGB色彩空间 250
15.2.2 GRAY色彩空间 251
15.2.3 HSV色彩空间 251
15.2.4 图像类型转换函数 251
15.2.5 标记指定颜色 252
任务3 查找与绘制图像轮廓 253
15.3.1 查找图像轮廓 254
15.3.2 绘制图像轮廓 254
任务4 人脸检测与识别 255
15.4.1 CascadeClassifier()函数 256
15.4.2 detectMultiScale()函数 256
习题 258
项目16 自然语言处理入门 259
任务1 《岳飞》语料库分析 259
16.1.1 读取语料库 260
16.1.2 词频率分布 261
16.1.3 了解NLTK模块的基本操作函数 261
任务2 《三国演义》字符过滤分析 263
16.2.1 jieba模块基本介绍 263
16.2.2 jieba模块的基本方法 263
任务3 使用HMM模型进行中文词分析 265
16.3.1 HMM模型介绍 265
16.3.2 在文本分类中使用HMM模型 265
任务4 使用朴素贝叶斯算法模型进行情感分析 269
16.4.1 朴素贝叶斯算法模型介绍 269
16.4.2 朴素贝叶斯算法模型的应用 270
习题 272
附录A 习题参考答案 273