本书旨在为读者提供全面的Python编程知识,并结合人工智能领域的实际应用,帮助读者掌握Python编程技能及其在人工智能项目中的实践方法。本书围绕Python程序设计与人工智能项目开发展开,共14章,涵盖了从基本语法到高级应用的比较全面的内容。 第1章介绍了Python基础知识,包括Python的现状、Python的应用领域、Python的发展历史、Python快速发展带来的启示、Python官方文档入口、Python开发环境配置、Python基本语法、人机交互(基本输入/输出)等内容。第2章介绍了数字类型与运算,包括数字类型、运算符与表达式、数学运算函数、math模块等内容。第3章和第4章深入探讨了流程控制及函数,通过丰富的实例,帮助读者掌握Python编程的核心概念和技巧。第5~8章进一步介绍了高级数据类型及常见操作、字符串、元组和列表、集合与字典等内容,结合实例,旨在提升读者的数据处理能力。第9~12章重点讲解了文件操作、面向对象程序设计、Matplotlib数据可视化,以及Python生态应用等内容。第13章和第14章为Python综合应用项目,分别介绍了智慧校园中的用户画像系统构建和基于知识图谱的学习资源推荐系统构建。通过两个完整的实例,读者将能把所学知识应用于实际项目中,提升解决复杂问题的能力。 本书配套提供了丰富的在线学习资源,包括微课视频、项目案例、教学课件、习题库及详解、源代码等,为教师实施线上线下混合式教学提供了有力支持,同时为广大读者的自主学习提供了极大便利。 本书不仅适合各教育阶段的在校学生使用,还适合Python编程爱好者,以及有志于投身数据科学与人工智能领域的人员阅读。
梁婷婷,教授,硕士生导师,人工智能教研室主任。热爱教育事业,自参加工作以来,主持教育部高等教育司产学合作协同育人项目2项,完成1项;主要承担广西高等教育本科教学改革工程项目5项,完成2项;主要参与广西科技计划项目1项;主要承担广西高校中青年教师科研基础能力提升项目4项,完成2项。主持完成校级科研教改课题6项。公开发表论文20余篇,其中核心5篇。曾获广西区高校青年教师教学竞赛-自然科学应用学科组二等奖1项,三等奖1项;曾获广西高校教育教学软件应用大赛一等奖1项,二等奖2项,三等奖5项;曾获其他校级、市级教学奖项十余项;编制教材两部;指导大学生创新创业项目立项—国家级1项,指导学生参加第五届中国"互联网+大学生创新创业大赛广西赛区荣获铜奖1项,指导学生参加全国大学生计算机设计大赛、广西大学生人工智能设计大赛等省部级以上赛事荣获四十余项奖项。主讲课程:《Python程序设计》、《数据结构》、《大数据可视化分析》、《C语言程序设计》等。
目 录
第1章 Python基础知识 1
1.1 Python概述 1
1.1.1 Python的现状 1
1.1.2 Python的应用领域 1
1.1.3 Python的发展历史 2
1.1.4 Python快速发展带来的
启示 2
1.1.5 Python官方文档入口 2
1.2 Python开发环境配置 2
1.2.1 解释器的安装和使用 2
1.2.2 IDE工具——PyCharm 4
1.2.3 IDE工具——Jupyter Notebook 5
1.3 Python基本语法 6
1.3.1 标识符 6
1.3.2 关键字 6
1.3.3 变量 7
1.3.4 行和缩进 7
1.3.5 引号和转义字符 8
1.3.6 注释 8
1.3.7 空行 9
1.3.8 编码规范 9
1.3.9 Python语法综合辨析 9
1.4 人机交互(基本输入/输出) 10
1.4.1 程序设计的基本流程 10
1.4.2 标准输出函数print() 11
1.4.3 print()函数的格式控制 12
1.4.4 标准输入函数input() 13
1.5 项目实训:个人名片设计——
美好愿景 14
1.5.1 项目背景 14
1.5.2 项目任务 15
1.5.3 项目分析 15
1.5.4 项目实现 15
1.5.5 项目优化 15
1.5.6 总结和启示 15
1.6 巩固练习 16
第2章 数字类型与运算 17
2.1 数字类型 17
2.1.1 常见的数字类型 17
2.1.2 数字类型的判断 18
2.1.3 数字类型的转换 18
2.2 运算符与表达式 19
2.2.1 常见的运算符与表达式 19
2.2.2 运算符的优先级 22
2.3 数学运算函数 24
2.3.1 绝对值函数 24
2.3.2 四舍五入函数 24
2.3.3 幂和模幂函数 24
2.3.4 最大值和最小值函数 25
2.3.5 字符串和表达式转换函数 25
2.4 math模块及其应用 26
2.4.1 math模块导入的两种
方法 26
2.4.2 math模块中常量和函数
的主要功能及应用 27
2.5 项目实训:竞赛积分分析及
预测——创新争先 29
2.5.1 项目背景 29
2.5.2 项目任务 29
2.5.3 项目分析 29
2.5.4 项目实现 30
2.5.5 项目优化 30
2.5.6 总结和启示 31
2.6 巩固练习 31
第3章 流程控制 32
3.1 流程控制的基本概念 32
3.2 顺序结构 32
3.2.1 顺序结构样例 33
3.2.2 处理解释型语言的程序错误 33
3.3 分支结构 33
3.3.1 if语句 34
3.3.2 match语句 39
3.4 循环结构 41
3.4.1 while循环 41
3.4.2 数字序列生成与循环控制 42
3.4.3 for循环 44
3.4.4 嵌套循环结构 46
3.4.5 嵌套循环效率 47
3.5 流程跳转语句 50
3.5.1 pass语句 50
3.5.2 continue语句 50
3.5.3 break语句 51
3.5.4 else子句 52
3.6 异常处理 53
3.6.1 异常概述 53
3.6.2 异常类型 53
3.6.3 异常处理 54
3.7 项目实训:学生画像系统
构建——精准服务 56
3.7.1 项目背景 56
3.7.2 项目任务 56
3.7.3 项目分析 57
3.7.4 项目实现 57
3.7.5 项目优化 58
3.7.6 总结和启示 60
3.8 巩固练习 60
第4章 函数 62
4.1 模块化程序设计与函数 62
4.1.1 模块化程序设计的目的 62
4.1.2 函数的简介 63
4.2 函数的定义和调用 63
4.2.1 函数的定义 63
4.2.2 函数的调用 64
4.3 函数的参数传递 66
4.3.1 位置传递 66
4.3.2 关键字传递 66
4.3.3 默认值传递 67
4.3.4 包裹传递 68
4.3.5 解包裹传递 69
4.4 函数的进阶应用 70
4.4.1 函数的嵌套调用 70
4.4.2 函数的递归调用 72
4.4.3 变量的作用域与生命周期 73
4.5 Lambda表达式的概念及应用 76
4.5.1 Lambda表达式的概念 76
4.5.2 Lambda表达式的应用 76
4.6 random模块的概念及应用 77
4.6.1 random模块的概念 77
4.6.2 random模块的应用 78
4.7 项用实训:学生画像系统模块化
设计——赋能成长 80
4.7.1 项目背景 80
4.7.2 项目任务 80
4.7.3 项目分析 80
4.7.4 项目实现 81
4.7.5 项目优化 82
4.7.6 总结和启示 83
4.8 巩固练习 83
第5章 高级数据类型及常见操作 84
5.1 高级数据类型 84
5.1.1 字符串的定义与特征 84
5.1.2 元组的定义与特征 84
5.1.3 列表的定义与特征 84
5.1.4 集合的定义与特征 85
5.1.5 字典的定义与特征 85
5.2 序列的通用操作 86
5.2.1 索引 86
5.2.2 切片 87
5.2.3 拼接与重复 88
5.2.4 最大值与最小值 88
5.2.5 成员测试 89
5.3 项目实训:业务数据预处理与
分析——行为监察 90
5.3.1 项目背景 90
5.3.2 项目任务 91
5.3.3 项目分析 91
5.3.4 项目实现 91
5.3.5 项目优化 92
5.3.6 总结和启示 93
5.4 巩固练习 93
第6章 字符串 94
6.1 字符串操作 94
6.1.1 字符串的创建与访问 94
6.1.2 字符串的遍历 94
6.2 字符串常量 95
6.3 字符串处理方法 96
6.3.1 str.upper()方法和str.lower()方法 96
6.3.2 str.strip()方法和rstrip()方法 96
6.3.3 str.join()方法 97
6.3.4 str.split()方法 97
6.3.5 str.count()方法 97
6.3.6 str.replace()方法 97
6.3.7 str.find()方法和str.rfind()
方法 98
6.3.8 str.index()方法和str.rindex()方法 98
6.4 正则表达式与字符串处理 100
6.4.1 正则表达式的组成 100
6.4.2 正则表达式的基本语法 101
6.4.3 re模块 102
6.4.4 正则表达式在人工智能
领域的应用 102
6.5 项目实训:随机故事生成器
设计——创意创作 105
6.5.1 项目背景 105
6.5.2 项目任务 106
6.5.3 项目分析 106
6.5.4 项目实现 106
6.5.5 项目优化 107
6.5.6 总结和启示 108
6.6 巩固练习 108
第7章 元组和列表 110
7.1 元组 110
7.1.1 元组的创建与访问 110
7.1.2 嵌套元组 110
7.1.3 元组的操作 111
7.2 列表 112
7.2.1 列表的创建 112
7.2.2 嵌套列表的创建与访问 113
7.2.3 列表的遍历和列表元素的
转换 113
7.2.4 列表元素的添加 113
7.2.5 列表元素的删除 114
7.2.6 列表元素的修改 115
7.3 列表推导式 117
7.4 列表的排序 120
7.4.1 默认规则排序 120
7.4.2 降序 121
7.4.3 自定义排序 121
7.4.4 复杂排序 121
7.4.5 逆序 122
7.5 项目实训:工程能力画像系统
构建——科学规划 124
7.5.1 项目背景 124
7.5.2 项目任务 124
7.5.3 项目分析 124
7.5.4 项目实现 125
7.5.5 项目优化 126
7.5.6 总结和启示 126
7.6 巩固练习 126
第8章 集合与字典 128
8.1 集合 128
8.1.1 集合的创建 128
8.1.2 集合的访问 129
8.1.3 集合的去重 129
8.1.4 集合元素的添加 130
8.1.5 集合元素的删除 130
8.1.6 集合的成员测试 131
8.1.7 集合运算 132
8.2 字典 135
8.2.1 字典的创建 135
8.2.2 字典视图 136
8.2.3 字典的成员访问 137
8.2.4 字典元素的添加与修改 138
8.2.5 字典元素的删除 139
8.2.6 字典元素的排序输出 140
8.3 项目实训:智能图书推荐系统
构建——价值引领 141
8.3.1 项目背景 141
8.3.2 项目任务 142
8.3.3 项目分析 142
8.3.4 项目实现 142
8.3.5 项目优化 144
8.3.6 总结和启示 144
8.4 巩固练习 144
第9章 文件操作 145
9.1 文件的基本概念与操作 145
9.1.1 文件的基本概念 145
9.1.2 文件的打开和关闭 145
9.1.3 文件的读取 146
9.1.4 文件的写入 148
9.1.5 文件的搜索 150
9.2 文件的高级操作 150
9.2.1 文件的异常处理与错误
捕获 150
9.2.2 二进制文件的处理 151
9.2.3 CSV文件的处理 152
9.2.4 JOSN文件的处理 154
9.3 项目实训:数据访问日志管理
系统构建——匠心守护 155
9.3.1 项目背景 155
9.3.2 项目任务 156
9.3.3 项目分析 156
9.3.4 项目实现 156
9.3.5 项目优化 158
9.3.6 总结和启示 159
9.4 巩固练习 160
第10章 面向对象程序设计 161
10.1 面向对象程序设计概述 161
10.1.1 面向对象程序设计和面向过程程序设计的区别 161
10.1.2 面向对象程序设计的
四大特性 161
10.2 类与对象 163
10.2.1 类的定义 163
10.2.2 类的实例——对象 163
10.3 属性和方法 164
10.3.1 实例属性 164
10.3.2 类属性 165
10.3.3 实例方法 167
10.3.4 类方法 167
10.3.5 静态方法 168
10.3.6 类成员的访问权限 170
10.4 继承 172
10.4.1 单继承 172
10.4.2 多继承 174
10.5 多态 177
10.5.1 方法的重写 177
10.5.2 鸭子类型 178
10.6 模块 180
10.6.1 系统内置模块 180
10.6.2 自定义模块 180
10.6.3 创建和使用模块 180
10.6.4 模块搜索路径 181
10.6.5 模块的特殊变量__name__ 181
10.7 包 183
10.7.1 包的基本概念 183
10.7.2 创建和使用包 183
10.8 库 184
10.8.1 标准库 184
10.8.2 第三方库 184
10.8.3 安装第三方库 184
10.8.4 导入库 185
10.8.5 自定义库和包 185
10.9 模块、包、库的关系和区别 186
10.10 项目实训:金融账户管理系统
构建——工程素养 186
10.10.1 项目背景 186
10.10.2 项目任务 186
10.10.3 项目分析 187
10.10.4 项目实现 187
10.10.5 项目优化 189
10.10.6 总结和启示 192
10.11 巩固练习 192
第11章 Matplotlib数据可视化 194
11.1 Matplotlib基础知识 194
11.1.1 Matplotlib的简介与
安装 194
11.1.2 基本绘图流程 195
11.1.3 图形属性与样式设置 198
11.2 线性图 200
11.2.1 绘制折线图 200
11.2.2 标注与美化 201
11.3 非线性图 203
11.3.1 饼图 203
11.3.2 柱形图 204
11.3.3 直方图 206
11.3.4 散点图 207
11.3.5 雷达图 209
11.3.6 箱线图 210
11.4 中英文词云图 211
11.4.1 WordCloud的简介与安装 212
11.4.2 英文词云图 212
11.4.3 中文词云图 214
11.5 项目实训:科技行业发展数据
可视化分析——创新驱动,
洞察未来 215
11.5.1 项目背景 215
11.5.2 项目任务 215
11.5.3 项目分析 216
11.5.4 项目实现 216
11.5.5 项目优化 218
11.5.6 总结和启示 218
11.6 巩固练习 218
第12章 Python生态应用 220
12.1 GUI 220
12.1.1 Tkinter的基本知识 220
12.1.2 事件处理与回调函数 221
12.2 网络请求及解析 223
12.2.1 网络请求及解析的简介 223
12.2.2 Requests 223
12.2.3 请求和使用大模型能力 224
12.2.4 etree 225
12.3 机器学习 226
12.3.1 机器学习的简介 226
12.3.2 监督学习 227
12.3.3 无监督学习 228
12.3.4 模型评估和优化 228
12.4 项目实训:古典诗词答疑助手
构建——科技助力文化传承 229
12.4.1 项目背景 229
12.4.2 项目任务 229
12.4.3 项目分析 230
12.4.4 项目实现 230
12.4.5 项目优化 232
12.4.6 总结和启示 233
12.5 巩固练习 234
第13章 Python综合应用项目——
智慧校园中的用户画像
系统构建 235
13.1 项目背景 235
13.2 项目任务 235
13.3 项目分析 235
13.3.1 需求分析 235
13.3.2 技术可行性分析 236
13.4 项目设计 236
13.5 项目实现 237
13.6 项目优化 239
13.7 总结和启示 240
第14章 Python综合应用项目——
基于知识图谱的学习资源推荐
系统构建 241
14.1 项目背景 241
14.2 项目任务 241
14.3 项目分析 241
14.4 项目设计 242
14.4.1 知识图谱构建模块 242
14.4.2 可视化模块 242
14.4.3 推荐算法模块 242
14.5 项目实现 243
14.5.1 知识图谱构建模块的实现 243
14.5.2 可视化模块的实现 243
14.5.3 推荐算法模块的实现 245
14.5.4 主程序的实现 246
14.6 项目优化 248
14.6.1 推荐算法优化 248
14.6.2 知识图谱存储与处理优化 249
14.6.3 用户交互优化 249
14.7 总结和启示