Python作为编程语言的一种,具有高效率、可移植、可扩展、可嵌入、易于维护等优点;Python语法简洁,代码高度规范,功能强大且简单易学,是程序开发人员必学的语言之一。 本书注重基础、循序渐进,内容丰富、结构合理、思路清晰、语言简练流畅、示例丰富,系统地讲述了Python程序设计开发相关基础知识。本书分为12章,主要包括Python与编程环境、Python语法基础、程序基本流程控制、典型序列数据结构、函数与函数式编程、面向对象编程基础、Python文件操作、使用模块与库编程、NumPy数值计算、Pandas数据处理分析、Matplotlib库与数据可视化、学生成绩数据处理与分析实战等内容。 为提升学习效果,书中结合实际应用提供了大量案例进行说明和训练,并配以完善的学习资料和支持服务,包括教学PPT、教学大纲、微视频等,为读者带来全方位的学习体验。 本书既可作为高等院校计算机程序设计或通识类课程教材,也可作为自学者使用的辅助教材,是一本适用于程序开发初学者的入门级教材。
本书既可作为高等院校计算机通识类课程教材,也可作为自学者使用的辅助教材,是一本适用于程序开发初学者的入门级教材。
Python语言于20世纪90年代初由荷兰人Guido van Rossum首次公开发布,经过历次版本的修正,不断演化改进,目前已成为最受欢迎的程序设计语言之一。近年来,Python多次登上诸如TIOBE、PYP、StackOverFlow、GitHub、Indeed、Glassdoor等各大编程语言社区排行榜。根据TIOBE最新排名,Python与Java、C语言排在全球流行语言的前三位。
Python语言之所以如此受欢迎,其主要原因是它拥有简洁的语法、良好的可读性以及功能的可扩展性。在各高校及行业应用中,采用Python作为教学、科研、应用开发的机构日益增多。在高校,一些国际知名大学采用Python语言来教授课程设计,典型的有美国麻省理工学院的计算机科学及编程导论、卡内基梅隆大学的编程基础、加州大学伯克利分校的人工智能等课程。在行业应用方面,Python已经渗透数据分析、互联网开发、工业智能化、游戏开发等重要的工业应用领域。
本书是2021年北京红亚华宇科技有限公司支持的教育产学合作协同育人项目基于新工科的数据分析及可视化课程资源研发项目成果,按以下3个原则进行编写:
(1)适应原则。Python语言具有自己独特的语法。本书以程序开发者的角度,在编程语言的大框架下,分析编程语言的细节差异,读者能够很好地适应Python的学习。
(2)科学原则。本书既是知识产品的再生产、再创造,也是编者教学经验的总结和提高。其覆盖范围广、内容新,既有面的铺开,又有点的深化,举例符合题意,读者学习起来事半功倍。
(3)实用原则。本书融合了计算机程序设计与数据分析的教学内容,并以数据分析应用为目的,旨在通过编程语言的学习和应用,培养学生的基本编程能力和计算思维,通过数据分析方法的学习和应用,培养学生的基本数据分析能力。
本书从基础和实践两个层面引导读者学习Python,系统、全面地讨论Python编程的思想和方法。第1~3章主要介绍Python的基本知识和理论基础。第4~8章详细介绍Python编程的核心技术,着眼于控制语句与函数、模块、包以及库的使用、类和继承、文件操作和数据处理的重点知识使用场景以及注意事项的描述,每章节都给出了详细的Python示例程序,让读者全面理解Python编程。其中第6章是程序开发的进阶,着重介绍了类、对象、属性、方法、继承等知识点,并针对每个知识点给出了详细的示例。第9~11章涵盖从数据的科学计算、数据处理分析到数据可视化。第12章通过从Python编程到Pandas库,对学生成绩数据进行处理与分析实战,有利于读者对数据处理与分析知识的应用。本书可以让读者在学习Python基础知识的同时,也能够掌握数据的分析与可视化知识。
本书的参考课时为32~48学时,可作为高等院校计算机程序设计或通识类课程教材,也适合从事相关工作的人员阅读。
本书由李辉、金晓萍、李丽芬主编。在编写过程中,张标、孙鑫鑫、朱玲、王静、杨建平、程新荣、白玉艳、代爱妮、王美丽、贺细平、张晶、王传安等老师提供了宝贵的修改意见和建议,在此表示感谢。
由于编者水平有限,加之Python语言的发展日新月异,书中难免会有疏漏和不妥之处,敬请广大读者批评指正。
编者
2023年2月
第1章Python与编程环境/1
1.1计算机程序与编程语言1
1.1.1计算机程序1
1.1.2计算机编程语言1
1.1.3计算机编程语言编译和解释2
1.2Python语言概述2
1.2.1Python的起源与发展2
1.2.2Python的特点3
1.2.3Python的应用领域与发展趋势3
1.3Python与PyCharm的安装及其配置4
1.3.1Python语言的解释器4
1.3.2Python 3.9.0的下载与安装5
1.3.3Python开发环境IDLE及其使用8
1.3.4Python集成开发环境PyCharm的安装与配置10
本章小结19
思考与练习19
第2章Python语法基础/21
2.1编码规范21
2.2标识符与保留字22
2.2.1标识符22
2.2.2保留字23
2.3变量和赋值23
2.3.1变量的定义23
2.3.2变量的命名24
2.3.3变量值的存储25
2.4数据类型26
2.4.1常见的数据类型26
2.4.2数据类型的判断方法28
2.4.3数据类型转换292.5基本输入与输出30
2.5.1input()函数30
2.5.2print()函数31
2.5.3字符串的格式化输出32
2.6运算符和表达式35
2.6.1运算符35
2.6.2表达式36
本章小结38
思考与练习38
〖1〗Python程序设计与数据分析基础目录〖3〗〖3〗第3章程序基本流程控制/40
3.1选择结构语句40
3.1.1单分支结构40
3.1.2双分支结构41
3.1.3多分支结构42
3.1.4嵌套分支结构43
3.2循环结构语句44
3.2.1while循环44
3.2.2for循环45
3.2.3循环嵌套46
3.3break、continue与else语句48
3.4pass语句51
3.5程序的错误与异常处理51
3.5.1程序的错误与处理51
3.5.2程序的异常与处理52
本章小结53
思考与练习54
第4章典型序列数据结构/56
4.1序列56
4.1.1序列概述56
4.1.2序列的基本操作56
4.2列表的创建与操作62
4.2.1创建列表63
4.2.2获取列表元素64
4.2.3常用的列表操作方法64
4.3元组的创建与操作67
4.3.1创建元组68
4.3.2获取元组元素69
4.3.3元组操作69
4.4字典的创建与操作70
4.4.1创建字典71
4.4.2获取元素72
4.5集合的创建与操作74
4.5.1创建集合75
4.5.2集合操作75
4.6推导式与生成器推导式76
4.6.1列表推导式76
4.6.2字典推导式78
4.6.3集合推导式80
4.6.4元组的生成器推导式80
4.7数据结构的判断与转换81
4.7.1列表和元组转换81
4.7.2列表、元组和集合的转换82
4.8字符串操作与正则表达式应用82
4.8.1字符串的常见操作82
4.8.2正则表达式处理字符串的步骤84
4.8.3Python支持的正则表达式语法85
4.8.4使用正则表达式处理字符串87
本章小结92
思考与练习92
第5章函数与函数式编程/95
5.1内置函数95
5.2自定义函数与调用95
5.2.1函数的定义96
5.2.2函数的调用96
5.2.3函数的返回值96
5.3函数参数的传递97
5.3.1固定参数传递98
5.3.2默认参数传递98
5.3.3未知参数个数传递99
5.3.4关键字参数传递100
5.4变量的作用域101
5.4.1局部变量101
5.4.2全局变量101
5.5函数的递归与嵌套102
5.5.1函数的递归函数102
5.5.2函数的嵌套104
5.6函数式编程104
5.6.1lambda匿名函数104
5.6.2map()函数106
5.6.3reduce()函数107
5.6.4filter()函数108
5.6.5zip()函数108
本章小结109
思考与练习110
第6章面向对象编程基础/111
6.1类和对象111
6.2类的定义和实例化111
6.2.1类的定义112
6.2.2类的实例化112
6.3实例与类的对象属性113
6.3.1实例对象属性113
6.3.2类对象属性114
6.3.3类对象属性与实例对象属性的区别与联系115
6.4成员属性与成员方法116
6.4.1成员属性116
6.4.2成员方法118
6.5类的继承与多态122
6.5.1类的继承与多重继承122
6.5.2多态与多态性125
本章小结127
思考与练习127
第7章Python文件操作/129
7.1文件与文件操作129
7.1.1文件数据的组织形式129
7.1.2文件的操作方法130
7.2CSV文件读取与写入操作133
7.2.1读取CSV文件133
7.2.2CSV文件的写入与关闭134
7.3文件操作的应用135
7.3.1数据的维度135
7.3.2一维数据和二维数据的读写135
本章小结137
思考与练习138
第8章使用模块与库编程/139
8.1模块的使用与创建139
8.1.1模块概述139
8.1.2模块的导入140
8.1.3模块自定义与使用141
8.2包的创建与使用143
8.2.1创建包143
8.2.2使用包143
8.3常见标准库的使用145
8.3.1turtle库的使用145
8.3.2random库的使用148
8.3.3时间和日期库的使用151
8.4常见的第三方库154
8.4.1第三方库的安装155
8.4.2中文处理相关库157
8.4.3网络爬虫相关库161
8.4.4其他第三方库简介166
本章小结171
思考与练习172
第9章NumPy数值计算/173
9.1数组的创建与访问173
9.1.1创建数组173
9.1.2查看数组属性177
9.1.3访问数组178
9.1.4修改数组181
9.2数组的运算184
9.2.1数组的转置184
9.2.2数组的算术运算184
9.2.3数组的布尔运算188
9.2.4数组的点积运算189
9.2.5数组的统计运算189
9.3数组的操作191
9.3.1数组的排序191
9.3.2数组的合并193
本章小结195
思考与练习195
第10章Pandas数据处理分析/196
10.1Pandas基本数据结构196
10.1.1Series数据结构定义与操作196
10.1.2DataFrame数据结构定义与操作200
10.1.3访问DataFrame数据元素203
10.1.4修改与删除DataFrame数据元素206
10.1.5DataFrame数据元素的排序209
10.2数据分析的基本流程212
10.3数据的导入与导出213
10.3.1数据的导入213
10.3.2数据的导出216
10.4数据预处理217
10.4.1缺失值处理218
10.4.2异常值处理221
10.4.3重复值处理222
10.4.4其他处理224
10.5数据分析方法227
10.5.1基本统计分析227
10.5.2分组分析229
10.5.3分布分析231
10.5.4交叉分析233
10.5.5结构分析234
10.5.6相关分析235
10.6DataFrame对象的合并与连接236
10.6.1DataFrame对象的合并236
10.6.2DataFrame对象的连接236
本章小结238
思考与练习238
第11章Matplotlib库与数据可视化/240
11.1数据可视化概述240
11.1.1常见的数据可视化图表类型240
11.1.2数据可视化图表的基本构成244
11.1.3数据可视化方式选择依据246
11.1.4常见的数据可视化库246
11.2Matplotlib库的概述247
11.2.1Matplotlib库的导入与设置247
11.2.2Matplotlib库绘图的层次结构248
11.3Matplotlib库绘图的基本流程249
11.3.1创建简单图表的基本流程249
11.3.2绘制子图的基本流程251
11.4使用Matplotlib库绘制常用图表253
11.4.1绘制直方图253
11.4.2绘制散点图254
11.4.3绘制柱形图256
11.4.4绘制折线图257
11.4.5绘制饼图259
11.4.6绘制面积图263
11.4.7绘制热力图264
11.4.8绘制箱形图265
11.4.9绘制雷达图269
11.4.10绘制3D图270
11.5图表辅助元素的设置273
11.5.1设置坐标轴的标签、刻度范围和刻度标签273
11.5.2添加标题和图例275
11.5.3显示网格276
11.5.4添加参考线和参考区域277
11.5.5添加注释文本278
11.5.6添加表格279
11.5.7图表辅助元素设置综合应用280
本章小结283
思考与练习283
第12章学生成绩数据处理与分析实战/285
12.1数据集准备285
12.2编程实现数据处理分析285
12.2.1数据探索285
12.2.2处理数据286
12.3Pandas库实现成绩数据处理与分析287
12.3.1数据探索287
12.3.2数据预处理290
12.3.3数据选取293
12.3.4数据分析295
12.3.5数据可视化297
12.3.6数据输出298
本章小结298
思考与练习298
参考文献/299