本书是一本面向初学者的Python编程教材,系统讲解了Python语言的语法、数据结构、程序设计以及应用开发。全书共11章,内容涵盖Python语言概述、基本数据类型与运算、组合数据类型、选择与循环语句结构、函数、文件操作、词云与PyInstaller库应用、数据分析与数据可视化、图形用户界面(GUI)开发以及多个经典应用领域。本书以示例形式对Python功能进行讲解,突出应用特色,让读者全面了解Python的各个应用领域。本书讲解简洁明了,案例丰富,可作为高等学校计算机、软件工程、计算机网络和非计算机专业理工科等相关专业学生学习程序设计的教材,也可作为Python程序设计人员的参考用书。
(1)涵盖了Python语言在数据库、网络爬虫、Web网站、游戏、人工智能、嵌入式硬件等当前热门领域的应用开发。(2)语言简洁明了,介绍由浅入深,适合作为高等学校计算机和非计算机专业的程序设计教材。(3)示例丰富,每章后面有实验和习题,便于对所学知识的理解、掌握和巩固。
前言
在当今数字化时代,计算机技术的飞速发展正深刻地改变着我们的生活和工作方式。大数据和人工智能技术的崛起,更是让编程语言的重要性日益凸显。在众多编程语言中,Python以其简洁明了的语法、强大的功能以及丰富的库支持,迅速成为最受欢迎的编程语言之一。它不仅适合计算机专业人员学习和使用,更是非计算机专业人员进入编程世界的理想选择。
Python语言具有简单易学、免费开源的特点,其学习门槛低、上手快,能够快速开发出具有行业应用特色的程序。Python语言还拥有高效、丰富和庞大的标准库与扩展库,这些库为Python在不同行业领域的成功应用提供了强有力的支撑。无论是在数据分析、机器学习、Web开发领域,还是游戏开发、人工智能等领域,Python都展现出了其强大的适应性和灵活性。
本书正是基于这样的背景而编写的。它旨在为高等院校计算机、软件工程、计算机网络及非计算机专业的相关理工科专业的学生提供一本系统、全面的Python程序设计教材。同时,对于广大非计算机专业的读者,本书也是一本实用的自学指南。书中不仅详细讲解了Python语言的基础知识,还通过丰富的案例分析,展示了Python在各个领域的实际应用。
本书的特点是知识点讲解简洁明了,案例丰富,强调实践与动手操作。通过每个章节的案例分析,读者将能够熟练掌握Python在各个领域的应用。全书共分为11章,其中前7章为基础知识,第8~11章介绍Python的常用功能。内容涵盖Python的特点、开发环境、基本数据类型、运算符、组合数据类型、选择与循环结构、函数、文件操作等基础知识,以及数据分析、数据可视化、GUI开发、网络爬虫、Web开发、游戏开发、人工智能和嵌入式硬件开发等实际应用。每章后附有习题和实验,帮助读者巩固所学知识。此外,为了方便教学和学习,本书还提供了配套的电子教案、源代码和习题答案等资源,读者可通过清华大学出版社网站下载。
本书由王德志担任主编,李冬艳、杨阳、崔新伟担任副主编。其中,第1~3章由崔新伟编写,第4~6章由李冬艳编写,第7、8章和附录由杨阳编写,第9~11章由王德志编写。王德志对全书进行了统稿。尽管编者在编写过程中付出了诸多努力,但由于编者水平有限,书中难免存在不足之处,恳请读者给予批评指正。
在此,特别感谢郭红、张云雷等老师对书稿的修改意见,感谢研究生李威、曹任傑同学对书稿的校验。我们希望本书能够成为读者学习Python的良师益友,助力大家在编程之路上不断进步。通过本书的学习,读者不仅能够掌握Python语言的基础知识,还能够深入了解Python在各个领域的实际应用,为未来的职业发展打下坚实的基础。
编者
2025年3月
目录
第1章Python语言概述/1
1.1Python语言发展简介1
1.1.1Python语言历史1
1.1.2Python语言特点1
1.1.3Python应用领域2
1.2集成开发环境3
1.2.1Python默认开发环境3
1.2.2PyCharm开发环境4
1.2.3Anaconda开发环境4
1.2.4VS Code4
1.3代码编写与执行方法6
1.3.1Python语言的书写规则6
1.3.2命令交互执行方式6
1.3.3程序文件执行方式7
1.4Python案例讲解9
1.4.1简单的输入输出程序9
1.4.2turtle绘制蟒蛇程序9
实验一Python环境与基本操作10
习题一10
第2章基本数据类型与运算/12
2.1数据类型概述12
2.2常量与变量12
2.2.1标识符的命名规则13
2.2.2变量13
2.2.3关键字14
2.3数值型数据操作15
2.3.1数值型数据15
2.3.2数值运算符15
2.3.3数值运算函数17
2.3.4数值类型转换函数18
2.4字符串数据操作18
2.4.1字符串数据18
2.4.2字符串的基本操作19
2.4.3字符串的内置方法21
2.4.4操作字符串的内置函数23
2.4.5字符串格式化方法24
2.5标准输入输出函数26
2.5.1输入函数input()26
2.5.2输出函数print()28
2.6扩展: math库的使用30
2.6.1math库的引用30
2.6.2math库的常用数学常数和函数31
实验二基本数据类型的操作32
习题二32
第3章组合数据类型/35
3.1组合数据类型概述35
3.2列表36
3.2.1列表的定义与赋值36
3.2.2列表的基本操作39
3.2.3列表的内置方法39
3.2.4操作列表的内置函数41
3.2.5range()函数的使用42
3.3元组43
3.3.1元组的定义与赋值43
3.3.2元组的基本操作44
3.4字典44
3.4.1字典的定义与赋值44
3.4.2字典的基本操作45
3.5集合48
3.5.1集合的定义与赋值48
3.5.2集合的基本操作48
3.6列表与其他数据类型的转换49
3.6.1列表与字符串间的转换49
3.6.2列表与字典间的转换50
3.7扩展: random库51
实验三组合数据类型的操作52
习题三53
第4章选择程序/55
4.1程序设计结构概述55
4.1.1算法的概念55
4.1.2算法的表示56
4.2关系运算符与逻辑运算符61
4.2.1关系运算符61
4.2.2逻辑运算符62
4.2.3优先级63
4.3成员运算符与一致性运算符63
4.3.1成员运算符63
4.3.2一致性运算符64
4.4顺序结构65
4.5选择结构65
4.5.1单分支结构: if语句66
4.5.2双分支结构: ifelse语句67
4.5.3三元运算符(条件表达式)68
4.5.4多分支结构: ifelifelse语句68
4.5.5if语句的嵌套结构70
4.6扩展: time库和datetime库的使用72
4.6.1calendar库的使用72
4.6.2time和datetime库的使用72
4.7综合案例74
实验四选择结构使用80
习题四82
第5章循环语句结构/84
5.1循环语句结构概述84
5.2while循环语句的结构84
5.2.1while循环语句的基本结构84
5.2.2while循环语句的使用示例85
5.3forin循环语句的结构86
5.3.1forin循环语句的基本结构87
5.3.2forin循环语句的使用示例88
5.4嵌套循环语句91
5.5break与continue语句92
5.5.1break语句92
5.5.2continue语句94
5.5.3循环结构中的else子句95
5.6特殊循环——列表解析96
5.7异常捕捉98
5.7.1Python中的异常98
5.7.2捕捉异常100
5.7.3else和finally子句102
5.8扩展: turtle库的使用102
5.8.1海龟绘图概述102
5.8.2turtle库常用方法103
5.8.3turtle库绘图示例104
5.9综合案例105
实验五循环结构使用113
习题五116
第6章函数/121
6.1函数的概念121
6.2常用Python标准库122
6.3函数的定义、调用与返回值122
6.3.1函数的定义122
6.3.2函数的返回值123
6.3.3函数的调用123
6.4函数的参数传递128
6.4.1参数是否可变128
6.4.2不同类型的参数130
6.5变量的作用域133
6.5.1局部变量与全局变量的概念133
6.5.2使用关键字global语句声明全局变量135
6.6函数的嵌套和递归135
6.6.1函数的嵌套调用135
6.6.2函数的递归调用136
6.7Python内置函数138
6.8lambda函数的定义与使用138
6.8.1lambda函数的定义138
6.8.2在lambda表达式中调用其他函数139
6.9扩展: jieba库的使用139
6.9.1jieba库概述140
6.9.2jieba库解析140
6.9.3文本词频统计141
6.10综合案例142
实验六函数的使用146
习题六148
第7章文件/151
7.1文件概念151
7.1.1文本文件和二进制文件151
7.1.2文本文件的编码151
7.1.3文件指针的概念152
7.2文件的打开与关闭152
7.2.1打开文件152
7.2.2关闭文件154
7.3文件的读写154
7.3.1读取文件数据154
7.3.2往文件写入数据156
7.3.3文件的定位读写157
7.3.4读写二进制文件158
7.4CSV文件操作159
7.4.1CSV文件的概念和特点159
7.4.2数据的维度159
7.4.3向CVS文件中读写一维和二维数据160
7.5扩展: openpyxl库的文件使用162
实验七文件166
第8章词云与PyInstaller库应用/168
8.1WordCloud使用168
8.1.1WordCloud的安装168
8.1.2WordCloud的使用169
8.2PyInstaller使用172
8.2.1PyInstaller安装172
8.2.2使用PyInstaller打包172
8.2.3PyInstaller的参数173
8.3综合案例: 基于共现提取人物关系可视化174
实验八《红楼梦》词频统计与词云展示182
第9章数据分析入门/183
9.1数据分析概述183
9.1.1数据分析的基本概念183
9.1.2数据分析的基本流程183
9.1.3数据分析第三方库的安装184
9.2Matplotlib数据可视化184
9.2.1绘制基本图形184
9.2.2添加坐标轴和图标识186
9.2.3绘制多窗口187
9.2.4配置常用图形参数188
9.2.5添加箭头注释189
9.3Pyecharts数据可视化191
9.3.1Pyecharts概述191
9.3.2绘制图形192
9.3.3设置图表配置参数196
9.3.4组合图与并行多图199
9.4NumPy多维数组201
9.4.1数组生成及属性201
9.4.2数组切片203
9.4.3运算符操作数组204
9.4.4数组修改操作205
9.4.5常用数学函数与统计函数207
9.4.6线性代数207
9.4.7综合案例208
9.5Pandas数据处理210
9.5.1Pandas数据结构210
9.5.2读取CSV/XLSX格式文件生成数据帧213
9.5.3数据切片读取214
9.5.4行列数据的增删改操作217
9.5.5修改行列索引220
9.5.6数据筛选222
9.5.7统计分析224
9.5.8综合案例225
9.6综合案例: 森林火灾数据可视化227
实验九设计学生成绩分析系统231
第10章图形用户界面(GUI)编程开发/232
10.1GUI开发第三方库介绍232
10.1.1GUI开发基本概念232
10.1.2常用第三方GUI库232
10.1.3EasyGUI特点233
10.1.4PyQt5特点234
10.2EasyGUI使用234
10.2.1EasyGUI安装与常用窗体函数234
10.2.2EasyGUI按钮窗体235
10.2.3EasyGUI单选与多选项窗体236
10.2.4EasyGUI文本输入窗体237
10.2.5EasyGUI文本显示窗体239
10.2.6EasyGUI目录与文件窗体239
10.3PyQt5开发环境安装240
10.3.1安装库文件240
10.3.2配置外部工具命令240
10.4PyQt5创建主窗体243
10.4.1绘制主窗体243
10.4.2转换窗体代码245
10.4.3编写窗体运行程序245
10.4.4修改窗体246
10.5PyQt5常用控件使用247
10.5.1标签247
10.5.2文本框249
10.5.3信号/槽和按钮250
10.5.4下拉列表框253
10.5.5弹出消息框255
10.5.6表格控件255
10.6PyQt5设计多窗体259
10.6.1嵌入式多窗体259
10.6.2弹出式多窗体261
10.6.3主窗体与子窗体交互数据262
10.7Matplotlib图形在PyQt5中的使用265
10.7.1总体设计思路265
10.7.2静态Matplotlib图形展示266
10.7.3动态Matplotlib图形展示268
10.8PyQt5程序打包发布269
10.8.1打包第三方工具的安装269
10.8.2打包命令269
10.9综合案例: 基于GUI的学生成绩管理软件269
实验十设计学生成绩分析系统273
第11章其他经典应用领域介绍/275
11.1Python热门应用领域概述275
11.2数据库操作应用276
11.2.1数据库基础知识276
11.2.2使用内置的SQLite3数据库276
11.2.3操作MySQL和SQL Server数据库278
11.3网络爬虫应用279
11.3.1网络爬虫第三方库安装279
11.3.2requests库的使用279
11.3.3HTML格式说明281
11.3.4beautifulsoup4库的使用282
11.3.5爬取豆瓣电影网Top250283
11.4Web网站开发应用284
11.4.1Flask开发环境配置284
11.4.2路由286
11.4.3利用上下文获得数据288
11.4.4超链接地址跳转289
11.4.5静态网页模板渲染290
11.5游戏开发应用292
11.5.1Pygame库介绍与安装292
11.5.2Pygame游戏框架293
11.5.3添加一个运动图像294
11.5.4键盘控制和发射子弹295
11.5.5利用精灵产生敌方坦克297
11.5.6精灵碰撞——多子弹与坦克碰撞298
11.6人工智能应用303
11.6.1人工智能与Python关系介绍303
11.6.2生成式人工智能(AIGC)平台API接口使用303
11.7嵌入式硬件开发应用308
11.7.1Python在嵌入式设备中应用308
11.7.2嵌入式设备虚拟仿真平台Wokwi使用310
附录/312
附录APython集成开发环境安装312
附录B常用Python学习网站312
附录CPython内置函数312
附录D国家计算机二级等级考试(Python)考试知识点介绍(2025版)312
参考文献/313