本书主要介绍Python语言的基础知识及其在数据分析与可视化、文本处理、数字媒体处理等领域的应用。本书在讲解Python基础知识的同时,以案例的形式详细介绍了Python在经济、管理、文学、法学和数字媒体处理的各专业中的应用。本书中的代码均在Python 3.12中测试通过,可以在Python 3.12及以上的版本中运行。
本书适合作为高等院校程序设计基础、Python数据处理与分析基础、Python数字媒体处理基础等课程的教材,也可作为Python程序设计爱好者的入门教程或相关科研工作者、工程实践者的参考书。
本书将简单的日常案例融入到Python语法、数据分析与可视化的讲解过程中,最后以实例分别列举了Python程序设计在经济管理、文本处理、数字媒体处理中的应用。配套资源丰富,提供微课视频、教学课件、程序源码、教学大纲、在线题库等。
Python程序设计语言的开源、跨平台、易于入门等特点使其广受使用者欢迎。近二十多年来,Python语言在TIOBE程序设计语言排行榜中的位次不断上升。在最近两年的每月排名中更是长期占据榜首。Python是通用的程序设计语言,广泛应用于互联网、桌面系统和嵌入式系统等开发领域。
在大数据和人工智能时代,数据处理、分析、机器学习和深度学习得到各个领域的广泛关注和重视。程序设计是实现数据处理、分析、机器学习和深度学习的基础。Python程序设计语言已广泛应用于这些领域。因此,学习Python程序设计可以为上述领域的学习和研究提供基础的技术支撑。
本书面向Python程序设计的入门读者,尽量兼顾简单性和体系性,顺序渐进地进行讲解,逐步引导读者注重利用帮助文档来提高自学能力和解决问题的能力。第1~7章介绍Python的基本用法和基础语法,第8、9章介绍文件与数据的处理,第10~12章分别介绍Python程序设计在各领域的应用。
第1章介绍Python开发环境的安装、各种常用集成开发环境的特点、Python编程的方式与风格、帮助的使用。第2~8章中贯穿了一个身体质量指数(BMI)计算的案例,根据各章的知识点,不断丰富该案例。第2章介绍Python语言的标识符、变量、赋值语句、标准输入和输出、常用数据类型等,该章根据体质指数案例计算的顺序(也是初学者初次接触程序碰到的大致流程)来组织知识点的顺序,逐步丰富、扩展相关知识点,并尽量保持知识点的完整性和体系性。第3章主要介绍分支结构和循环结构,其中标星号(*)的部分对初学者来说可能有一定的难度,读者可以先跳过该内容。第4章主要介绍列表、元组、等差整数序列、字典、集合等组合类型对象的创建和常见用法,并介绍了可迭代对象、迭代器和推导式的用法,最后介绍collections模块中的Counter容器以方便元素个数的统计。第5章主要介绍字符串的构造、字符集与字符编码、字符串格式化方法和字符串操作的常用方法。第6章主要介绍函数的定义方法、函数参数的传递方式、lambda函数、模块的__name__属性及其用处。第7章介绍类的定义方法、对象的一般创建方法、类的继承特性。第8章主要介绍数据在文本文件和Excel文件中的存取方法。第9章主要介绍利用NumPy、Matplotlib和Pandas进行数据分析和可视化展示的基本方法。第10章以案例的形式分别介绍经济与管理中的数据分析和可视化。第11章以案例的形式介绍文学与法学中文本的分析和可视化。第12章以案例的形式介绍数字媒体中音频与图像的处理。上海对外经贸大学的柳青参与了第2、4、5和6章的部分内容编写,郑戟明参与了第2和4章的部分内容编写。
本书提供配套的程序源码,并为教师提供教学课件、教学大纲和部分习题参考答案。这些资料可以从清华大学出版社官方网站下载。
使用本书时,如果读者使用Python官方发行的标准版本,则还需要安装以下第三方库: openpyxl、xlwings、numpy、matplotlib、pandas、scikitlearn、gensim、pillow、jieba、wordcloud、pygame、pydub。如果使用Anaconda,则还需要安装以下第三方库: jieba、wordcloud、pygame、pydub。本书相应章节中均有这些库的安装方法介绍。
由于作者水平有限,书中难免存在疏漏和不足之处,敬请批评指正,并将意见反馈给我们。
作者
2025年3月
第1章Python概述与开发环境
1.1Python语言的特点
1.2Python的下载与安装
1.2.1标准版Python的下载与安装
1.2.2增强版Python的下载与安装
1.3开始使用Python
1.3.1交互方式
1.3.2代码文件方式
1.3.3代码文件的打开
1.3.4代码风格
1.4Python的集成开发环境
1.4.1Spyder
1.4.2VS Code
1.4.3Wing Python IDE
1.5模块导入与使用帮助
1.5.1模块、包、库与模块的导入方式
1.5.2常用标准模块
1.5.3使用帮助
1.5.4模块导入与使用帮助的应用实例
习题
第2章Python语言基础
2.1用字符串表达自然语言
2.1.1一对英文引号作为字符串的边界符
2.1.2字符串的拼接
2.2标识符、变量与赋值语句
2.2.1标识符
2.2.2变量与赋值语句
2.3使用input()函数从键盘接收输入
2.4数据类型
2.4.1数值类型
2.4.2布尔类型
2.4.3序列类型
2.4.4映射类型
2.4.5集合类型
2.5根据数值字符串创建数值对象
2.6运算符与表达式
2.6.1基本运算符与表达式
2.6.2复合赋值运算符与表达式
2.7使用print()函数实现输出
2.8执行字符串中的表达式计算
2.8.1用eval()函数计算字符串中单个表达式的值
2.8.2用exec()函数执行字符串中多个表达式
2.9常用内置函数与常用模块
2.9.1常用内置函数
2.9.2常用标准模块random
2.10续行符
2.11Python语言基础的应用实例
习题
第3章流程控制
3.1条件表达式
3.2if语句分支结构
3.2.1if语句的单分支结构
3.2.2if语句的双分支结构
3.2.3if语句的多分支结构
3.2.4分支结构的嵌套
3.3分支结构的三元运算
*3.4matchcase分支结构
3.4.1匹配简单对象
3.4.2匹配序列对象
3.4.3匹配字典对象
3.5循环结构
3.5.1简单while循环结构
3.5.2简单for循环结构
3.5.3用于终止循环的break语句
3.5.4用于提前进入下一轮循环的continue语句
3.5.5嵌套循环
3.5.6嵌套循环中的break和continue语句
习题
第4章常用组合数据类型
4.1常用序列类型及其对象的创建
4.1.1列表及其对象的创建
4.1.2元组及其对象的创建
4.1.3列表与元组之间的相互生成
4.1.4等差整数序列及其对象的创建
4.2序列对象的通用操作
4.2.1序列元素的访问
4.2.2序列的切片
4.2.3序列中的加法与乘法运算
4.2.4序列中特定元素出现次数的统计
4.2.5序列中查找元素的位置索引
4.2.6适用于序列的常用函数
4.2.7实现序列位置翻转的reversed类
4.2.8序列元素的遍历
4.2.9随机排列与随机采样
4.3列表的常用操作
4.3.1列表元素的修改
4.3.2列表元素的插入与扩展
4.3.3列表元素的删除
4.3.4列表元素位置的翻转与元素的排序
4.4序列的应用实例
4.5字典
4.5.1字典的创建
4.5.2修改与扩充字典元素
4.5.3字典元素相关计算
4.5.4根据字典的键查找对应的值
4.5.5删除字典中的元素
4.5.6获取字典元素对象
4.5.7遍历字典
4.5.8字典的应用实例
4.6由字典生成列表与元组
4.7集合
4.7.1集合的创建
4.7.2集合的运算
4.8可迭代对象与迭代器对象
4.8.1可迭代对象
4.8.2迭代器对象
4.8.3创建常用的迭代器对象
4.9推导式
4.9.1列表推导式
4.9.2字典推导式
4.9.3集合推导式
4.10序列解包
4.11collections模块中的Counter容器
习题
第5章字符串与字符编码
5.1字符串构造
5.2字符集与字符编码
5.2.1字符集与编码方法
5.2.2字符与编码的转换
5.3字符串格式化
5.3.1用%格式化字符串
5.3.2用format()方法格式化字符串
5.3.3用format_map()方法格式化字符串
5.3.4用fstrings字面量方法格式化字符串
5.4字符串常用方法
5.4.1英文字母大小写转换
5.4.2判断字符串中的字符元素特点
5.4.3子串的查找与统计
5.4.4分割字符串
5.4.5用join()连接可迭代对象中的元素
5.4.6子串与字符替换
5.4.7去除首尾子串
5.4.8判断是否以特定子串开始或结束
习题
第6章函数的设计与模块的__name__属性
6.1为什么需要函数
6.2函数的定义
6.3位置参数与关键参数
6.4默认参数
6.5个数可变的参数
6.5.1一个形参接收多个实参构成组合对象
6.5.2一个组合对象的实参给多个形参分配参数
6.5.3形参和实参均为组合对象
6.6变量作用域
6.7匿名函数lambda
6.8函数的递归调用
6.9模块的__name__属性
习题
第7章自定义类与对象
7.1对象类型与对象方法调用
7.2类的定义与对象的创建
7.3类的继承
7.3.1父类与子类
7.3.2继承的语法
7.3.3子类继承父类的属性
7.3.4子类继承父类的方法
习题
第8章文件的读写
8.1文件的打开与关闭
8.2文本文件的读写
8.2.1以字符方式将文本写入文件
8.2.2以字节方式将文本写入文件
8.2.3以字符方式读取文本文件
8.2.4以字节方式读取文本文件
8.2.5采用指定编码存取文本文件
8.3文件指针
8.4用csv模块读写CSV文件
8.5用xlwings处理Excel文件
8.5.1创建Excel文件
8.5.2读取并修改Excel文件
8.5.3在Excel中调用Python程序
习题
第9章数据分析与可视化基础
9.1NumPy数据处理基础
9.1.1多维数组
9.1.2获取数组对象属性
9.1.3转换数组的数据类型
9.1.4随机数与随机数组的生成
9.1.5数组在文件中的存取
9.1.6数组的常用运算与函数
9.1.7数组元素的统计分析与排序
9.2Matplotlib数据可视化基础
9.2.1绘制基本图形
9.2.2绘制多轴图
9.2.3颜色的设置
9.2.4坐标轴主次刻度的设置
9.3Pandas数据分析基础
9.3.1数据结构与基本操作
9.3.2在文件中存取Pandas数据对象
9.3.3数据预处理
9.3.4统计分析
9.3.5Pandas中的绘图方法
习题
第10章经济与管理中的数据分析和可视化
10.1Jupyter Notebook简介
10.2销售数据分析与可视化
10.3人事管理数据分析与可视化
习题
第11章文学与法学中文本的分析和可视化
11.1文本的分词与停用词的去除
11.2制作词云
11.3词性标注
11.4提取关键词
11.4.1基于TFIDF算法的关键词抽取
11.4.2基于TextRank算法的关键词抽取
11.5文本的向量化
11.5.1基于词袋模型的向量编码
11.5.2基于序列模型的向量编码
11.6基于文本相似性的类案检索
习题
第12章数字媒体处理
12.1音频处理
12.1.1利用wave进行音频处理
12.1.2利用pygame播放音乐
12.1.3利用pydub进行音频处理
12.2利用Pillow库进行图像处理
12.2.1Image模块
12.2.2ImageDraw与ImageFont模块
12.2.3ImageFilter模块
12.2.4综合实例: 利用Pillow制作验证码图像
习题
参考文献