Python程序设计基础教程(微课版)

一本Python入门教程
分享 推荐 5 收藏 143 阅读 16.7K
林子雨 (作者) 978-7-115-57519-7

关于本书的内容有任何问题,请联系 孙澍

1. 名师精品,本书为厦门大学林子雨老师多年计算机教学实践的厚积薄发;
2. 适合作为高等院校各个专业的入门级Python教材,特别适合大数据专业和参加Python二级等考的读者;
3. 详细介绍了获得Python基础编程能力所需要掌握的各方面技术,包括基于文件与数据库的持久化、图形用户界面编程、正则表达式、网络爬虫、常用的标准库和第三方库等,覆盖全国二级Python等考大纲,清晰呈现Python语言学习路径;
4. 支持线上线下混合式教学,提供完整的教学视频;
5. 配套资源丰富:PPT、教学大纲、慕课、微课、配套实验指导及习题解析教材,并及时更新;
6. 教学平台为全国高校师生提供在线教学服务;
7. 有教师服务QQ群:708151548。

内容摘要

本书详细介绍了获得Python基础编程能力所需要掌握的各方面技术,内容覆盖全国计算机等级考试二级Python考试大纲的内容。全书共15章,内容包括Python语言概述、基础语法知识、程序控制结构、序列、字符串、函数、面向对象程序设计、模块、异常处理、基于文件的持久化、基于数据库的持久化、图形用户界面编程、正则表达式、网络爬虫、常用的标准库和第三方库等。本书每章都安排了入门级的编程实践操作,以便读者更好地学习和掌握Python编程方法。
本书官网免费提供了全套的在线教学资源,包括PPT、习题、源代码、软件、数据集、上机实验指南等。
本书可以作为高等院校各个专业的入门级Python教材,也可作为软件开发入门者的学习用书,还可作为参加Python等级考试的学习用书。

前言

计算机语言是程序设计的最重要的工具,它是计算机能够接受和处理的、具有一定语法规则的语言。从计算机诞生至今,计算机语言经历了机器语言、汇编语言和高级语言三个阶段,如今被广泛使用的高级语言包括C、C++、Java、Python、C#等。随着信息技术的发展,计算机程序设计课程在高校中成为一门必修的基础课程,对于这门课程而言,关键是要选择一种合适的编程语言(高级语言)。以前,大部分高校采用的编程语言是C、C++或Java,但是,最近几年,Python凭借其独特的优势逐渐崭露头角。Python是目前非常流行的编程语言,具有简洁、易读、可扩展等特点,已经被广泛应用到Web开发、系统运维、搜索引擎、机器学习、游戏开发等领域。在当前这个云计算、大数据、物联网、人工智能、区块链等新兴技术蓬勃发展的新时代,Python正扮演着越来越重要的角色。对于编程初学者而言,Python是理想的选择。对于高校教学而言,Python也正逐渐替代C语言成为大学生的入门学习语言。从解决计算问题的角度,传统的C、Java和VB语言过分强调语法,并不适合非计算机专业学生解决一般计算问题,而Python语言作为“轻语法”程序设计语言,相比其他语言而言,具有更高的教学价值。
笔者带领的厦门大学计算机科学系数据库实验室团队,是在国内高校具有较高影响力的、专注于大数据教学的团队。在多年的大数据教学实践中我们发现,Python已经被广泛应用于数据科学领域。在数据采集环节,在Python第三方库Scrapy的支持,可以编写网络爬虫程序采集网页数据。在数据清洗环节,第三方库pandas提供了功能强大的类库,可以帮助我们清洗数据、排序数据,最后得到清晰明了的数据。在数据处理分析环节,第三方库NumPy和SciPy提供了丰富的科学计算和数据分析功能,包括统计、优化、整合、线性代数、傅里叶变换、信号和图像图例、常微分方程求解、矩阵解析和概率分布等。在数据可视化环节,第三方库Matplotlib提供了丰富的数据可视化图表功能。因此,在大数据科学领域,Python已经成为应用最广泛的编程语言。
综上所述,无论是对于计算机类专业(计算机、软件工程、大数据等),还是对于非计算机类专业,Python都已经成为一门大学生必学的编程语言。优秀的教材是在全国高校推广Python教学的基础,到目前为止,在
这个领域已经有不少具有较强影响力的教材,我们团队算是Python教材编写的“后来者”。但是,我们仍然希望能够凭借自己独特的视角和丰富的教学实践,为全国高校Python教材编写贡献“绵薄之力”。作为“后来者”,我们的优势是,在全面分析国内外多种同类教材的基础上,充分吸收其他教材的长处,努力克服其他教材的短板,争取编写一本让高校教师、学生获得更好教学、学习体验的优秀教材。
● 本书特色
1.全面覆盖计算机等级考试大纲。为了满足读者参加全国计算机等级考试的需求,编者系统梳理了《全国计算机等级考试二级Python语言程序设计考试大纲》,力求做到本书知识点对等级考试考点的全覆盖。
2.支持混合式教学。编者针对全书各章节的重点、难点录制了完整的高质量微视频,读者可通过扫描书中对应的二维码,即可进行自主学习,实现线上线下同步学习。
3.提供丰富的教学配套资源。为了帮助高校一线教师更好地开展教学工作,本书配有丰富的教学资源,如PPT、教学大纲、实验手册、习题集、慕课/微课以及在线自主学习平台等。
● 使用指南
本书共15章,授课教师可按模块化结构组织教学,同时可以根据所在学校关于本课程的学时安排情况,对部分章节的内容进行灵活取舍。本书在“学时建议表”中给出了针对理论内容教学的学时建议。此外,教师还可以根据学生的具体情况配合本课程开展相应的实验教学。
学时建议表
章节 32学时 48学时
第1章 Python语言概述 2 2
第2章 基础语法知识 2 2
第3章 程序控制结构 4 4
第4章 序列 4 4
第5章 字符串 2 4
第6章 函数 4 4
第7章 面向对象程序设计 4 4
第8章 模块 2 2
第9章 异常处理 2 2
第10章 基于文件的持久化 2 2
第11章 基于数据库的持久化 2 2
第12章 图形用户界面编程 0 4
第13章 正则表达式 0 4
第14章 网络爬虫 0 4
第15章 常用的标准库和第三方库 2 4

各位选用了本书的授课教师,可以通过人邮教育社区(www.ryjiaoyu.com),免费下载本书配套的丰富教学资源。本书配套的官方网站http://dblab.xmu.edu.cn/post/python,也免费提供全部配套资源的在线浏览和下载,并接受错误反馈和发布勘误信息。
本书由林子雨、赵江声、陶继平执笔,其中,林子雨负责全书规划、统稿、校对和在线资源创作,并撰写第1~4章、第8章、第11章、第14章、第15章的内容,赵江声负责撰写第5章、第6章、第9章、第10章、第13章的内容,陶继平负责撰写第7章、第12章的内容。在撰写过程中,厦门大学计算机科学系硕士研究生郑宛玉、陈杰祥、陈绍纬、周伟敬、阮敏朝、刘官山、黄连福等做了大量辅助性的工作,在此,向这些同学的辛勤工作表示衷心的感谢。同时,感谢夏小云和黄玺在书稿校对过程中的辛勤付出。
本书撰写过程中,编者参考了大量的网络资料和相关书籍,对Python知识体系进行了系统的梳理,有选择性地把一些核心内容纳入本书。由于编者能力有限,书中难免存在不足之处,望广大读者不吝赐教。

林子雨
厦门大学计算机科学系数据库实验室
2021年5月

目录

第1章 Python语言概述
1.1 计算机语言 1
1.1.1 计算机语言的种类 1
1.1.2 编程语言的选择 2
1.2 Python简介 3
1.2.1 什么是Python 3
1.2.2 Python语言的特点 3
1.2.3 Python语言的应用 5
1.2.4 Python的版本 6
1.3 搭建Python开发环境 7
1.3.1 安装Python 7
1.3.2 使用交互式执行环境 8
1.3.3 运行代码文件 8
1.3.4 使用IDLE编写代码 8
1.3.5 第三方开发工具 10
1.4 Python规范 10
1.4.1 注释规则 10
1.4.2 代码缩进 12
1.5 本章小结 12
1.6 习题 12
第2章 基础语法知识
2.1 关键字和标识符 13
2.1.1 关键字 13
2.1.2 标识符 13
2.2 变量 14
2.3 基本数据类型 16
2.3.1 数字 16
2.3.2 字符串 16
2.3.3 数据类型转换 17
2.4 基本输入和输出 18
2.4.1 使用input()函数输入 18
2.4.2 使用print()函数输出 19
2.5 运算符和表达式 22
2.5.1 算术运算符和表达式 22
2.5.2 赋值运算符和表达式 22
2.5.3 比较运算符和表达式 23
2.5.4 逻辑运算符和表达式 23
2.5.5 运算符的优先级与结合性 24
2.6 本章小结 24
2.7 习题 25
第3章 程序控制结构
3.1 程序控制结构 26
3.2 选择语句 27
3.2.1 if语句 27
3.2.2 if…else语句 27
3.2.3 if…elif…else多分支语句 28
3.2.4 if语句的嵌套 29
3.3 循环语句 31
3.3.1 while循环语句 31
3.3.2 for循环语句 32
3.3.3 循环嵌套 33
3.4 跳转语句 36
3.4.1 break跳转语句 36
3.4.2 continue跳转语句 38
3.4.3 pass语句 39
3.5 综合实例 39
3.6 本章小结 42
3.7 习题 43
第4章 序列
4.1 列表 44
4.1.1 列表的创建与删除 44
4.1.2 访问列表元素 45
4.1.3 添加、删除、修改列表元素 46
4.1.4 对列表进行统计 49
4.1.5 对列表进行排序 49
4.1.6 成员资格判断 51
4.1.7 切片操作 51
4.1.8 列表推导式 53
4.1.9 二维列表 53
4.2 元组 54
4.2.1 创建元组 54
4.2.2 访问元组 55
4.2.3 修改元组 55
4.2.4 删除元组 56
4.2.5 元组推导式 56
4.2.6 元组的常用内置函数 57
4.2.7 元组与列表的区别 58
4.2.8 序列封包和序列解包 58
4.3 字典 59
4.3.1 字典的创建与删除 60
4.3.2 访问字典 61
4.3.3 添加、修改和删除字典元素 63
4.3.4 字典推导式 63
4.4 集合 64
4.4.1 集合的创建与删除 64
4.4.2 集合元素的添加与删除 65
4.4.3 集合的并集、交集与差集操作 66
4.5 本章小结 66
4.6 习题 66
第5章 字符串
5.1 基本概念 68
5.2 字符串的索引和切片 70
5.2.1 字符串的索引 70
5.2.2 字符串的切片 71
5.3 字符串的拼接 73
5.4 特殊字符和字符转义 75
5.5 原始字符串和格式化字符串 77
5.5.1 原始字符串 77
5.5.2 格式化字符串 78
5.6 字符串的编码 81
5.7 常用操作 85
5.8 本章小结 86
5.9 习题 86
第6章 函数
6.1 普通函数 88
6.1.1 基本定义及调用 88
6.1.2 文档字符串 90
6.1.3 函数标注 90
6.1.4 return语句 91
6.1.5 变量作用域 92
6.1.6 函数的递归调用 93
6.2 匿名函数 95
6.3 参数传递 96
6.3.1 给函数传递不可变对象 96
6.3.2 给函数传递可变对象 97
6.3.3 关于参数传递的总结 97
6.4 参数类型 98
6.4.1 位置参数 98
6.4.2 关键字参数 98
6.4.3 默认参数 99
6.4.4 不定长参数 100
6.4.5 特殊形式 101
6.4.6 参数传递的序列解包 101
6.5 本章小结 102
6.6 习题 103
第7章 面向对象程序设计
7.1 面向对象编程概述 104
7.1.1 对象与类 104
7.1.2 继承与多态 105
7.2 Python中的面向对象 105
7.2.1 对象 105
7.2.2 类 106
7.3 自定义类 107
7.3.1 类的定义与实例化 107
7.3.2 构造器 108
7.3.3 类属性与实例属性 109
7.4 成员的可见性 111
7.4.1 公有成员与私有成员 111
7.4.2 保护型成员 112
7.4.3 property类 112
7.5 方法 114
7.5.1 类方法 114
7.5.2 静态方法 115
7.5.3 魔法方法 116
7.6 类的继承 117
7.6.1 继承 117
7.6.2 多态 120
7.7 本章小结 121
7.8 习题 122
简答题 122
编程题 122
第8章 模块
8.1 创建和使用模块 125
8.1.1 创建模块 125
8.1.2 使用import语句导入模块 125
8.1.3 使用from…import语句导入模块 126
8.2 模块搜索路径 127
8.3 包 128
8.3.1 创建和使用包 129
8.3.2 作为主程序运行 129
8.4 Python自带的标准模块 131
8.5 使用pip管理Python扩展模块 131
8.6 本章小结 132
8.7 习题 132
第9章 异常处理
9.1 异常的概念 133
9.2 内置异常类层次结构 134
9.3 异常处理结构 135
9.3.1 try/except 135
9.3.2 try/except…else… 137
9.3.3 try/except…finally… 138
9.3.4 try/except…else…finally… 139
9.4 抛出异常 141
9.5 断言 141
9.6 用户自定义异常 142
9.7 定义清理操作 143
9.8 返回值的取值选择 145
9.9 本章小结 146
9.10 习题 146
第10章 基于文件的持久化
10.1 持久化前的准备工作 147
10.2 数据序列化和反序列化 148
10.2.1 使用JSON对数据进行序列化和反序列化 148
10.2.2 使用pickle对数据进行序列化和反序列化 149
10.2.3 两种序列化方式的对比 150
10.3 基于Windows操作系统的文件和路径 151
10.3.1 Windows里的绝对路径 152
10.3.2 Windows里的相对路径 153
10.3.3 Windows里的环境变量 153
10.4 Python对目录的操作 154
10.4.1 获取当前目录 154
10.4.2 转移到指定目录 155
10.4.3 新建目录 155
10.4.4 判断目录是否存在 155
10.4.5 显示目录内容 155
10.4.6 判断是目录还是文件 156
10.4.7 删除目录 156
10.5 Python对文件的操作 157
10.5.1 打开文件 157
10.5.2 关闭文件 159
10.5.3 复制文件 159
10.5.4 重命名文件 159
10.5.5 删除文件 159
10.6 Python对文件内容的操作 160
10.6.1 dump()和read()函数 160
10.6.2 write()、seek()和tell()函数 161
10.6.3 writelines()和readlines()函数 162
10.7 本章小结 163
10.8 习题 163
第11章 基于数据库的持久化
11.1 关系数据库 164
11.2 关系数据库标准语言SQL 165
11.2.1 SQL简介 165
11.2.2 常用的SQL语句 166
11.3 MySQL的安装和使用 168
11.3.1 安装MySQL 168
11.3.2 MySQL的使用方法 170
11.4 使用Python操作MySQL数据库 172
11.4.1 连接数据库 172
11.4.2 创建表 173
11.4.3 插入数据 173
11.4.4 修改数据 174
11.4.5 查询数据 174
11.4.6 删除数据 175
11.5 本章小结 175
11.6 习题 175
第12章 图形用户界面编程
12.1 图形用户界面编程概述 177
12.1.1 从命令行界面到图形用户界面 177
12.1.2 图形用户界面程序的运行与开发 178
12.1.3 Python中的图形界面编程 179
12.2 tkinter概述 179
12.2.1 类的层次结构 179
12.2.2 基本开发步骤 180
12.3 tkinter常用控件的使用 182
12.3.1 常用控件的基本属性 182
12.3.2 Label 184
12.3.3 Button 186
12.3.4 Entry 186
12.3.5 Checkbutton 188
12.3.6 Radiobutton 189
12.3.7 Listbox 190
12.3.8 Frame/LabelFrame 191
12.4 tkinter中的布局管理 192
12.4.1 Pack布局 192
12.4.2 Grid布局 194
12.4.3 Place布局 195
12.5 tkinter中的事件处理 196
12.5.1 事件的表示 196
12.5.2 事件处理程序的绑定 197
12.6 tkinter的综合应用案例 198
12.7 本章小结 200
12.8 习题 200
第13章 正则表达式
13.1 正则表达式概述 202
13.2 正则表达式的基本规则 203
13.2.1 正则表达式中的字符串类型 203
13.2.2 模式字符串中的普通字符 203
13.2.3 模式字符串中的转义字符 204
13.2.4 模式字符串的其他特殊字符 205
13.3 正则表达式的组 210
13.3.1 捕获组 210
13.3.2 条件匹配 211
13.3.3 断言组 212
13.4 正则表达式的函数 215
13.4.1 正则表达式的使用方法 215
13.4.2 正则对象和匹配规则 215
13.4.3 正则对象的常用成员函数 216
13.4.4 正则表达式里的match对象 219
13.5 本章小结 220
13.6 习题 220
第14章 网络爬虫
14.1 网络爬虫概述 222
14.1.1 什么是网络爬虫 222
14.1.2 网络爬虫的类型 223
14.1.3 反爬机制 223
14.2 网页基础知识 224
14.2.1 超文本和HTML 224
14.2.2 HTTP 224
14.3 用Python实现HTTP请求 225
14.3.1 urllib模块 225
14.3.2 urllib3模块 226
14.3.3 requests模块 227
14.4 定制requests  227
14.4.1 传递URL参数 227
14.4.2 定制请求头 228
14.4.3 设置网络超时 229
14.5 解析网页 229
14.5.1 BeautifulSoup简介 229
14.5.2 BeautifulSoup四大对象 231
14.5.3 遍历文档树 232
14.5.4 搜索文档树 237
14.5.5 CSS选择器 239
14.6 综合实例 241
14.6.1 采集网页数据保存到文本文件 241
14.6.2 采集网页数据保存到MySQL数据库 243
14.7 本章小结 245
14.8 习题 245
第15章 常用的标准库和第三方库
15.1 turtle库 246
15.1.1 turtle库的常用函数 246
15.1.2 绘图实例 247
15.2 random库 249
15.2.1 基本随机数函数 249
15.2.2 扩展随机数函数 250
15.3 time库 251
15.3.1 时间获取函数 251
15.3.2 时间格式化函数 252
15.3.3 程序计时函数 253
15.4 PyInstaller库 254
15.5 jieba库 255
15.5.1 jieba库简介 255
15.5.2 jieba库的安装和使用 256
15.5.3 应用实例 256
15.6 wordcloud库 257
15.7 Matplotlib库 259
15.7.1 绘制折线图 259
15.7.2 绘制条形图 260
15.7.3 绘制直方图 261
15.7.4 绘制饼图 261
15.8 本章小结 262
15.9 习题 262
参考文献 264

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

林子雨(1978-),男,博士,国内高校知名大数据教师,厦门大学计算机科学系副教授,厦门大学信息学院实验教学中心主任,厦门大学数据库实验室负责人,中国计算机学会数据库专委会委员,中国计算机学会信息系统专委会委员,中国高校首个“数字教师”提出者和建设者。2013年开始在厦门大学开设大数据课程,建设了国内高校首个大数据课程公共服务平台,平台累计网络访问量超过1000万次,成为全国高校大数据教学知名品牌,并荣获“2018年福建省教学成果二等奖”和“2018年厦门大学教学成果特等奖”,主持的课程《大数据技术原理与应用》获评“2018年国家精品在线开放课程”和“2020年国家级线上一流本科课程”,主持的课程《Spark编程基础》获评“2020年福建省线上一流本科课程”。

推荐用户

购买本书用户

相关图书

人邮微信
本地服务
教师服务
教师服务
读者服务
读者服务
返回顶部
返回顶部