本书为高等院校Python程序设计教材。 本书内容覆盖高等院校对Python程序设计课程的主要教学要求,结构严谨、层次清晰、兼具基础性与实践性。全书共13章,从程序设计的基本概念入手,系统介绍Python的变量与数据类型、顺序结构、选择结构、循环结构等核心语法;随后深入讲解列表、元组、字符串、字典、集合等常用组合数据类型;在学生掌握基础语法体系后,进一步介绍函数、面向对象程序设计、异常处理、文件操作及Python标准库与第三方库应用等内容,帮助学生初步具备程序设计、数据处理与可视化的综合能力。 全书配备大量贴合课堂教学需求的示例代码、流程图和习题,有助于学生构建系统化的知识结构并提升动手实践能力。书中内容紧扣国家对高等学校培养应用型、复合型人才的能力要求,结构安排合理、讲解逻辑严谨、案例丰富,突出了Python语言的实用性与可扩展性。 为方便教学与上机实践,本书还提供配套的教学资源,包括授课计划、电子课件、示例代码及习题参考答案等,以支持教师授课与学生自主学习。 本书既可作为高等院校Python程序设计、计算思维基础等课程的教材,也适合作为广大编程爱好者系统学习Python的参考书。全书内容兼顾理论与实践,可满足课堂教学、实验实训和自学提升等多样化学习需求。
任美玲,烟台南山学院副教授。长期从事计算机领域的教学与科研工作,拥有丰富的教学经验和扎实的学术积累。近年来,发表过多篇关于物联网、大数据方面的学术论文,多次指导学生参与国家级、省级比赛并获奖,参与过《Linux操作系统》教材的编写,该教材已被评为省级一流教材。物联网工程专业负责人,负责物联网专业的课程体系制定工作,主讲课程包括Python程序设计、JSP Web开发、Linux操作系统、物联网控制技术、网络集成、物联网学习导论等。
第1章 Python与程序设计概论 1
1.1 程序与程序设计的概念 1
1.1.1 程序的定义 1
1.1.2 程序的基本特征 1
1.1.3 程序设计的定义 1
1.1.4 程序设计的基本步骤 2
1.2 Python的发展历史与应用领域 2
1.2.1 Python的发展历程 2
1.2.2 Python的特点 3
1.2.3 Python的应用领域 3
1.3 Python开发环境的选择与安装 4
1.3.1 Python解释器与版本选择 4
1.3.2 常用开发环境 4
1.4 Anaconda的安装与JupyterLab的使用 4
1.4.1 Anaconda的安装与启动 5
1.4.2 在JupyterLab中编写与运行程序 6
1.5 注释与基本编码规范 7
1.5.1 单行注释与块注释 7
1.5.2 Python代码缩进规则 8
1.5.3 编码风格基础 8
1.5.4 编码规范的重要性与良好习惯 8
习题1 9
第2章 基本数据类型与顺序结构 10
2.1 变量与赋值 10
2.1.1 变量的概念 10
2.1.2 标识符的命名规则与规范 10
2.1.3 赋值语句与多重赋值 11
2.1.4 变量是对象的引用 12
2.2 基本数据类型 12
2.2.1 整数类型 13
2.2.2 浮点数类型 13
2.2.3 复数类型 14
2.2.4 布尔类型 14
2.2.5 字符串基础 15
2.3 类型转换与运算符优先级 16
2.3.1 显式类型转换 16
2.3.2 隐式类型转换 16
2.3.3 运算符优先级与括号的使用 17
2.4 表达式与语句 18
2.4.1 表达式及其求值 18
2.4.2 语句及其种类 19
2.4.3 表达式与语句的关系 20
2.5 输入与输出 20
2.5.1 print()的基本使用 20
2.5.2 input()的基本使用 21
2.5.3 综合练习:温度转换、BMI计算器 21
2.6 程序流程与顺序结构 22
2.6.1 三大程序结构概念 22
2.6.2 流程图简介与示例 23
2.6.3 综合练习:计算学生平均分 24
习题2 24
第3章 选择结构 26
3.1 条件判断与逻辑表达式 26
3.1.1 条件判断的基本概念 26
3.1.2 逻辑表达式的构造 26
3.1.3 短路求值 27
3.1.4 条件判断的常见模式与优先级规则 27
3.2 单分支if结构 28
3.2.1 if语句的语法与执行流程 28
3.2.2 单分支案例 29
3.3 二分支if-else结构 29
3.3.1 二分支的语法与执行流程 30
3.3.2 二分支案例 30
3.4 多分支if-elif-else结构 31
3.4.1 多分支的语法与执行流程 31
3.4.2 多分支案例 32
3.5 嵌套条件与可读性优化 33
3.5.1 嵌套条件的基本语法与应用 33
3.5.2 嵌套条件的可读性问题与改进策略 35
3.6 条件表达式 36
3.6.1 基本语法与应用 36
3.6.2 嵌套条件表达式 37
习题3 37
第4章 循环结构 39
4.1 while循环 39
4.1.1 while循环的语法与执行流程 39
4.1.2 while循环的常见模式 40
4.1.3 防止死循环的原则与输入防护 40
4.2 for循环与range() 41
4.2.1 for循环的语法与序列遍历 41
4.2.2 range()的参数含义与常见用法 42
4.3 循环控制语句 43
4.3.1 break语句的语法与应用 44
4.3.2 continue语句的语法与应用 45
4.3.3 循环的else子句的语法与应用 45
4.4 嵌套循环与复杂循环逻辑 46
4.4.1 嵌套循环 46
4.4.2 循环的优化原则 48
习题4 49
第5章 列表与元组 50
5.1 序列类型概述 50
5.1.1 序列的基本概念 50
5.1.2 可变序列与不可变序列 50
5.2 列表的创建 51
5.3 列表的基本操作 51
5.3.1 使用索引访问单个元素 51
5.3.2 使用切片访问子列表 52
5.3.3 列表的拼接与重复 53
5.4 列表的增删改查操作 53
5.4.1 增加元素 53
5.4.2 删除元素 54
5.4.3 修改元素与切片赋值 55
5.4.4 查询操作 56
5.5 列表的常用方法与聚合函数 56
5.5.1 排序与反转 56
5.5.2 聚合函数 58
5.6 列表的遍历与复制 58
5.6.1 列表的遍历 58
5.6.2 列表的复制 60
5.7 嵌套列表 61
5.7.1 创建嵌套列表 61
5.7.2 访问嵌套列表中的元素 61
5.7.3 修改嵌套列表中的元素 61
5.7.4 遍历嵌套列表 62
5.8 列表推导式 63
5.8.1 列表推导式的基本语法 63
5.8.2 带条件的列表推导式 64
5.8.3 带else的列表推导式 64
5.8.4 嵌套列表推导式 64
5.9 元组 65
5.9.1 元组的创建 65
5.9.2 元组的不可变性 66
5.9.3 元组的访问与遍历 66
5.9.4 元组与列表的比较 67
习题5 67
第6章 字符串 69
6.1 字符串的基本概念 69
6.2 字符串的创建、转义字符与原始字符串 70
6.2.1 字符串的创建 70
6.2.2 转义字符 70
6.2.3 原始字符串 71
6.3 字符串的基本操作 71
6.3.1 索引、切片与遍历 72
6.3.2 字符串的拼接与重复 72
6.4 字符串的常用方法 73
6.4.1 大小写转换方法 73
6.4.2 类别判断方法 73
6.4.3 查找与计数方法 74
6.4.4 清理与替换方法 74
6.4.5 拆分与拼接方法 75
6.4.6 对齐与填充方法 76
6.5 字符串格式化 76
6.5.1 字符串格式化的概念 76
6.5.2 f-string的基本用法 77
6.5.3 str.format()方法 78
6.5.4 传统%格式化简介 79
6.6 字符编码与字符集基础 80
6.6.1 字符与编码的基本概念 80
6.6.2 字符与编码值的转换 81
6.6.3 编码与解码 81
6.7 正则表达式基础 82
6.7.1 正则表达式基础概念 82
6.7.2 查找符合模式的子串 83
6.7.3 字符串的替换与拆分 84
习题6 85
第7章 字典 86
7.1 字典的基本概念 86
7.2 字典的创建 87
7.3 字典的基本操作 88
7.3.1 访问与取值 88
7.3.2 添加与修改元素 89
7.3.3 删除与清空元素 89
7.4 字典的视图对象与遍历 90
7.4.1 字典的视图对象 90
7.4.2 遍历字典内容 91
7.4.3 成员判断与遍历结合 92
7.5 字典的常用方法与函数 94
7.5.1 字典更新与合并 94
7.5.2 字典排序 95
7.5.3 字典复制 96
7.5.4 字典统计 97
7.6 字典的嵌套组合使用 98
7.6.1 嵌套字典的使用 99
7.6.2 字典与列表的组合使用 100
7.6.3 嵌套数据的多层遍历 101
7.7 字典推导式 102
7.7.1 基本语法结构 102
7.7.2 字典推导式应用示例 102
习题7 104
第8章 集合 105
8.1 集合的基本概念 105
8.2 集合的创建 106
8.3 集合的基本操作 107
8.3.1 添加与更新元素 107
8.3.2 删除与清空元素 108
8.3.3 成员判断 109
8.3.4 集合的遍历 109
8.3.5 示例:统计一段文本中不重复的单词数 109
8.4 集合的数学运算 110
8.4.1 并集 110
8.4.2 交集 111
8.4.3 差集 111
8.4.4 对称差集 111
8.4.5 子集与超集判断 112
8.4.6 示例:学生选课统计分析 112
8.5 集合的常用方法与内置函数 113
8.5.1 集合复制 113
8.5.2 集合的常用统计函数 114
8.5.3 集合的等价比较 114
8.5.4 集合的就地更新方法 114
8.6 集合推导式 115
8.6.1 集合推导式的语法 115
8.6.2 集合推导式与列表推导式的对比 116
8.6.3 示例:提取唯一元素 116
8.7 集合与其他数据类型的转换 116
8.7.1 列表与集合的相互转换 117
8.7.2 元组与集合的转换 117
8.7.3 字符串与集合的转换 117
8.7.4 集合与字典键的关系 118
8.7.5 示例:通过集合比较不同数据源 118
8.8 不可变集合frozenset 118
8.8.1 frozenset的特点 119
8.8.2 创建与常用操作方法 119
8.8.3 典型应用场景 120
习题8 120
第9章 函数 122
9.1 函数的基本概念 122
9.2 自定义函数 122
9.2.1 函数的定义 122
9.2.2 调用函数 123
9.2.3 函数的基本组成与执行流程 124
9.3 函数的参数 125
9.3.1 形式参数与实际参数的概念 125
9.3.2 参数传递机制 126
9.3.3 参数的类型 127
9.3.4 参数顺序与调用顺序 128
9.3.5 序列与字典的解包传参 129
9.4 函数的返回值 129
9.4.1 return语句的语法与作用 129
9.4.2 返回单个值与多个值 130
9.4.3 无返回值函数 131
9.4.4 提前结束函数执行 131
9.5 变量作用域与命名空间 132
9.5.1 局部变量与全局变量 132
9.5.2 LEGB作用域查找规则 133
9.5.3 global与nonlocal关键字 133
9.5.4 命名空间与变量生命周期 134
9.6 递归函数 135
9.6.1 递归函数的基本概念 135
9.6.2 递归函数的结构与执行过程 136
9.6.3 常见递归示例 137
9.7 匿名函数(Lambda表达式) 138
9.7.1 Lambda表达式的语法格式与特点 138
9.7.2 匿名函数的常见应用 139
9.8 常用内置函数 139
9.8.1 数学与统计函数 139
9.8.2 类型转换与序列构造函数 140
9.8.3 序列操作与迭代函数 140
9.8.4 其他常用函数 141
9.9 主程序入口 142
9.9.1 __name__与主程序入口机制 142
9.9.2 主程序入口结构 142
习题9 144
第10章 面向对象程序设计基础 145
10.1 面向对象程序设计概述 145
10.1.1 程序设计方法的发展 145
10.1.2 类与对象的概念及关系 145
10.1.3 对象的属性与方法 146
10.2 定义类与创建对象 146
10.2.1 定义类 146
10.2.2 创建对象 147
10.3 类成员 147
10.3.1 属性 147
10.3.2 方法 149
10.3.3 self参数的作用 151
10.4 封装与属性访问控制 151
10.4.1 封装的基本概念与作用 152
10.4.2 对象属性与方法访问权限 152
10.4.3 使用方法访问与修改属性 153
10.5 继承与代码复用 155
10.5.1 继承的基本概念 155
10.5.2 继承的基本语法 156
10.5.3 方法重写 157
10.5.4 使用super()调用父类方法 157
10.6 多态与灵活的对象使用方式 158
10.6.1 多态的基本概念 158
10.6.2 Python中的多态实现 158
10.7 特殊方法与运算符重载 161
10.7.1 常见特殊方法简介 161
10.7.2 初始化方法__init__ 161
10.7.3 字符串方法__str__与 __repr__ 162
10.7.4 对象的长度方法__len__ 163
10.7.5 特殊方法的使用原则 163
10.7.6 运算符重载 164
习题10 165
第11章 异常处理 167
11.1 异常处理的基本概念 167
11.1.1 错误与异常的区别 167
11.1.2 异常的定义与意义 167
11.1.3 Python异常体系结构 168
11.2 使用try-except捕获和处理异常 169
11.2.1 try-except的基本语法 169
11.2.2 捕获多个异常类型 170
11.2.3 捕获所有异常 171
11.2.4 捕获异常信息 172
11.2.5 使用else子句 172
11.2.6 使用finally子句 173
11.3 异常的传播机制 173
11.3.1 异常在函数调用中的传播 过程 174
11.3.2 调用栈与异常的逐层传递 174
11.3.3 异常捕获的层级选择原则 175
11.4 主动抛出异常 176
11.4.1 主动抛出异常的作用 176
11.4.2 raise语句的语法结构 176
11.4.3 重新抛出异常 177
11.4.4 在函数或方法中校验参数并 抛出异常 177
11.5 自定义异常类 179
11.5.1 自定义异常的用途 179
11.5.2 自定义异常类的基本结构 179
11.5.3 为异常类添加自定义信息或属性 180
习题11 181
第12章 文件操作 183
12.1 文件与文件路径基础 183
12.1.1 文件的作用与类型 183
12.1.2 文件路径与目录结构 183
12.1.3 文件编码基础 184
12.1.4 文件操作的一般流程 185
12.2 文件的打开与关闭 185
12.2.1 使用open()函数打开文件 185
12.2.2 文件对象的属性与方法 186
12.2.3 打开文件时可能出现的异常 187
12.2.4 使用close()方法关闭文件 187
12.3 with语句与文件资源管理 188
12.3.1 with语句的作用 188
12.3.2 with语句的语法结构 188
12.3.3 with语句与异常安全 189
12.4 文件读取操作 190
12.4.1 read()读取内容 190
12.4.2 readline()按行读取 190
12.4.3 readlines()读取所有行 191
12.4.4 遍历文件 191
12.5 文件写入操作 192
12.5.1 write()写入文件 192
12.5.2 writelines()写入多行 192
12.5.3 文件读写中的指针定位 193
12.6 文件和目录的操作 195
12.6.1 os模块 196
12.6.2 pathlib模块 198
12.7 CSV文件处理 201
12.7.1 CSV文件简介 201
12.7.2 读取CSV文件 201
12.7.3 写入CSV文件 202
12.7.4 字典方式读写CSV文件 203
12.8 JSON文件处理 204
12.8.1 JSON简介 204
12.8.2 使用json模块读写JSON文件 205
12.8.3 JSON的常见用法 207
习题12 208
第13章 Python标准库与第三方库应用 209
13.1 Python库的基本概念 209
13.1.1 标准库与第三方库 209
13.1.2 模块、包与库的概念 210
13.1.3 查询标准库文档 210
13.1.4 第三方库的安装与管理 211
13.1.5 模块的导入 212
13.2 数学、随机与时间库简介 213
13.2.1 数学函数库 213
13.2.2 随机数库 215
13.2.3 时间库 216
13.3 科学计算、数据分析与数据可视化库简介 217
13.3.1 NumPy数值计算库简介 217
13.3.2 Pandas数据处理库简介 218
13.3.3 Matplotlib数据可视化库简介 219
13.4 网络与网络请求库简介 220
13.4.1 urllib库简介 220
13.4.2 requests库简介 221
习题13 222