本书详细介绍了获得Python基础编程能力所需要掌握的各方面技术,内容覆盖全国计算机等级考试二级Python考试大纲的内容。全书共15章,内容包括Python语言概述、基础语法知识、程序控制结构、序列、字符串、函数、面向对象程序设计、模块、异常处理、基于文件的持久化、基于数据库的持久化、图形用户界面编程、正则表达式、网络爬虫、常用的标准库和第三方库等。本书每章都安排了入门级的编程实践操作,以便读者更好地学习和掌握Python编程方法。 本书官网免费提供了全套的在线教学资源,包括讲义PPT、习题、源代码、软件、数据集、上机实验指南等。
1.作者影响力大:林子雨是大数据领域有广泛影响的作者,Python的大数据领域应用较广,很多采用林子雨大数据基础的老师呼吁林子雨出版一本Python基础教材;
2.内容覆盖Python二级等考;
3.配套资源多:微课视频、PPT、习题答案、源代码、数据集、上机实验指南与二级等考习题解析;
林子雨(1978-),男,博士,国内高校知名大数据教师,厦门大学计算机科学系副教授,厦门大学信息学院实验教学中心主任,厦门大学数据库实验室负责人,中国计算机学会数据库专委会委员,中国计算机学会信息系统专委会委员,中国高校首个数字教师提出者和建设者。2013年开始在厦门大学开设大数据课程,建设了国内高校首个大数据课程公共服务平台,平台累计网络访问量超过1000万次,成为全国高校大数据教学知名品牌,并荣获2018年福建省教学成果二等奖和2018年厦门大学教学成果特等奖,主持的课程《大数据技术原理与应用》获评2018年国家精品在线开放课程和2020年线上一流本科课程,主持的课程《Spark编程基础》获评2020年福建省线上一流本科课程。
第 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
第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