目录Contents


第1章Python程序设计快速入门1
1.1安装Python软件和运行Python程序1
1.1.1Python语言的特点1
1.1.2Python软件的下载和安装2
1.1.3命令行方式运行代码4
1.1.4文件方式运行代码5
1.2安装Anaconda软件和运行Python程序6
1.2.1安装Anaconda软件7
1.2.2Jupyter Notebook运行Python程序8
1.2.3Spyder运行Python程序10
1.3Python关键要素11
1.3.1一个简单的计算器程序11
1.3.2数据类型12
1.3.3对象和引用14
1.3.4逻辑操作17
1.3.5if选择语句18
1.3.6while循环语句22
1.3.7for…in循环语句23
1.3.8算术运算23
1.3.9输入输出28
1.4库的导入与扩展库的安装29
1.4.1库的导入29
1.4.2扩展库的安装30
1.5Python在线帮助31
1.5.1Python交互式帮助系统31
1.5.2Python文档33
1.6实战: 积跬步以致千里34
1.7习题35◆Python语言程序设计(第3版·微课版)目录第2章字符串和列表36
2.1字符串基础36
2.1.1创建字符串36
2.1.2字符编码37
2.1.3转义字符38
2.2字符串运算39
2.2.1处理字符串的函数39
2.2.2下标运算符[]40
2.2.3切片运算符[start:end:step]41
2.2.4连接运算符+和复制运算符42
2.2.5in和not in成员运算符42
2.2.6格式化字符串运算符%42
2.3字符串对象的常用方法43
2.3.1去除字符串首尾的空白符及指定字符44
2.3.2字符串的大小写处理44
2.3.3搜索与替换字符串45
2.3.4连接与分割字符串46
2.3.5字符串映射47
2.3.6检查字符串特征47
2.3.7字符串对齐及填充48
2.3.8字符串格式化输出49
2.4字符串常量52
2.5实战: 恺撒加密和解密52
2.6实战: MD5加密54
2.7列表54
2.7.1创建列表54
2.7.2修改列表元素55
2.7.3往列表中添加元素55
2.7.4删除列表中的元素56
2.7.5列表切片57
2.8序列类型的常用操作58
2.9统计和排序列表中的元素59
2.10列表推导式61
2.11用于列表的一些常用函数62
2.12基于turtle库绘图和绘制文本64
2.12.1画布64
2.12.2Turtle空间坐标体系66
2.12.3画笔66
2.12.4绘图命令67
2.12.5用turtle绘制文本69
2.13实战: 绘制落英缤纷的樱花树70
2.14习题72
第3章元组、字典和集合74
3.1元组74
3.1.1创建元组74
3.1.2修改元组75
3.1.3生成器推导式76
3.2字典77
3.2.1创建字典77
3.2.2访问字典78
3.2.3添加与修改字典元素79
3.2.4删除字典元素81
3.2.5复制字典81
3.2.6字典推导式82
3.3字典实战: 使用jieba库统计《蒹葭》的词频82
3.4集合数据类型83
3.4.1创建集合83
3.4.2集合添加元素84
3.4.3集合元素删除84
3.4.4集合运算85
3.4.5集合推导式86
3.5集合实战: 统计公司的各类人才都有谁?86
3.6序列解包87
3.7日期格式和字符串格式相互转化89
3.7.1字符串格式转化为日期格式89
3.7.2日期格式转化为字符串格式90
3.8循环中的break、continue、pass和else90
3.8.1用break语句提前终止循环90
3.8.2用continue语句提前结束本次循环91
3.8.3pass子句92
3.8.4循环语句的else 子句92
3.9实战: 简易购物94
3.10习题95
第4章函数97
4.1定义函数97
4.2函数调用99
4.2.1带有返回值的函数调用99
4.2.2不带返回值的函数调用102
4.3向函数传递实参102
4.3.1位置实参传递102
4.3.2关键字实参传递103
4.3.3默认值实参传递103
4.3.4可变长实参传递104
4.3.5序列解包实参传递105
4.4通过传引用来传递实参106
4.5生成器函数106
4.6lambda表达式定义匿名函数109
4.6.1lambda表达式定义的匿名函数和def函数的区别109
4.6.2自由变量对lambda表达式的影响111
4.7变量的作用域112
4.7.1全局变量112
4.7.2局部变量113
4.8函数的递归调用114
4.9常用内置函数117
4.9.1map()映射函数117
4.9.2reduce()函数118
4.9.3filter()过滤函数119
4.10pyinstaller打包生成可执行文件120
4.11实战: 哥德巴赫猜想121
4.12习题122
第5章正则表达式124
5.1正则表达式的构成124
5.1.1预定义字符124
5.1.2元字符125
5.2正则表达式的分组匹配128
5.2.1无名分组匹配129
5.2.2命名分组匹配129
5.2.3分组后向引用匹配130
5.3正则表达式的选择匹配131
5.4正则表达式的贪婪匹配与懒惰匹配131
5.4.1贪婪匹配131
5.4.2懒惰匹配132
5.5正则表达式模块re133
5.5.1search()与match()函数匹配字符串133
5.5.2findall()与finditer()函数获取所有匹配子串136
5.5.3sub()函数搜索与替换137
5.5.4compile()函数编译正则表达式138
5.5.5split()函数分隔字符串139
5.6正则表达式中的(?:pattern)、(?=pattern)、(?!pattern)、(?<=pattern)
和(?<!pattern)140
5.7实战: 提取HTML文件中的歌手和歌名142
5.8习题143
第6章文件与文件夹操作145
6.1文件的概念145
6.1.1文件的分类145
6.1.2字符编码与解码146
6.2文件读写148
6.2.1文件的读取148
6.2.2文件的写入151
6.2.3文件指针的定位153
6.2.4Python数据类型与字节数据类型的转换154
6.3文件与文件夹操作156
6.3.1使用os操作文件与文件夹156
6.3.2使用os.path操作文件与文件夹159
6.3.3使用shutil操作文件与文件夹162
6.4CSV文件的读取和写入(使用原文件)164
6.4.1使用csv.reader()读取CSV文件164
6.4.2使用csv.writer()写入CSV文件165
6.4.3使用csv.DictReader()读取CSV文件166
6.4.4使用csv.DictWriter()写入CSV文件168
6.4.5CSV文件的格式化参数169
6.4.6自定义dialect170
6.5实战: 递归遍历文件夹获取指定后缀的文件名列表171
6.6习题172
第7章面向对象程序设计174
7.1编程范式174
7.1.1面向过程编程174
7.1.2面向对象编程175
7.1.3函数式编程175
7.2创建和使用类177
7.2.1定义类177
7.2.2创建类的对象178
7.3类中的属性178
7.3.1对象属性和类属性178
7.3.2公有属性和私有属性180
7.3.3特殊属性181
7.4类中的方法182
7.4.1对象方法182
7.4.2类方法184
7.4.3静态方法185
7.4.4属性装饰器186
7.5类的继承189
7.5.1类的单继承和多继承189
7.5.2子类的方法__init__()191
7.5.3查看继承的层次关系194
7.6object类195
7.6.1内置属性195
7.6.2内置函数196
7.7对象的浅复制和深复制197
7.7.1对象的浅复制197
7.7.2对象的深复制198
7.8实战: 自定义分类感知器199
7.8.1感知器模型199
7.8.2感知器学习算法200
7.8.3Python实现感知器学习算法202
7.8.4使用感知器分类鸢尾花数据203
7.9实战: 自定义数据结构205
7.9.1自定义栈数据结构205
7.9.2自定义队列数据结构207
7.10习题210
第8章模块和包211
8.1模块211
8.1.1模块的创建211
8.1.2模块的导入和使用212
8.1.3模块的主要属性213
8.2导入模块时搜索目录的顺序与系统目录的添加215
8.2.1导入模块时搜索目录的顺序215
8.2.2使用sys.path.append()临时增添系统目录216
8.2.3使用pth文件永久添加系统目录216
8.2.4使用PYTHONPATH环境变量永久添加系统目录216
8.3包217
8.3.1包的创建217
8.3.2包的导入与使用218
8.4实战: 自定义二叉树数据结构219
8.5习题223
第9章错误和异常处理224
9.1程序的错误224
9.1.1常犯的9个错误224
9.1.2常见的错误类型227
9.2异常处理229
9.2.1异常概述229
9.2.2异常类型230
9.2.3异常处理230
9.2.4主动抛出异常235
9.2.5自定义异常类236
9.3断言处理238
9.3.1断言处理概述238
9.3.2启用/禁用断言239
9.3.3断言使用场景240
9.4实战: 自定义图数据结构241
9.5习题245
第10章Tkinter图形用户界面设计247
10.1Tkinter图形用户界面库247
10.1.1Tkinter的组件247
10.1.2Tkinter编程基本步骤248
10.2Tkinter布局管理器250
10.2.1pack布局管理器250
10.2.2grid布局管理器251
10.2.3place布局管理器253
10.3主窗口254
10.4标签和按钮256
10.4.1标签256
10.4.2按钮260
10.5文本框262
10.5.1单行文本框262
10.5.2多行文本框263
10.6消息和对话框267
10.6.1消息267
10.6.2消息对话框268
10.6.3文件对话框270
10.7选择组件272
10.7.1单选按钮272
10.7.2复选框274
10.7.3列表框276
10.8菜单与框架278
10.8.1菜单组件278
10.8.2框架组件280
10.9tkinter的子模块ttk281
10.10习题283
第11章数据可视化284
11.1matplotlib绘图流程284
11.1.1创建画布284
11.1.2创建绘图区285
11.1.3绘制图表289
11.2绘图属性设置289
11.2.1颜色、标记和线型289
11.2.2刻度、标题和标签290
11.2.3网格、文本和注释292
11.2.4图例和保存293
11.3绘制线形图和散点图295
11.3.1线形图概述295
11.3.2绘制线形图的步骤296
11.3.3支持中文字体的方式298
11.3.4绘制散点图301
11.4绘制直方图和条形图303
11.4.1绘制直方图303
11.4.2绘制柱状图306
11.5绘制饼图、极坐标图和雷达图309
11.5.1绘制饼图309
11.5.2绘制极坐标图310
11.5.3绘制雷达图311
11.6绘制3D效果图312
11.6.1绘制三维曲线图313
11.6.2绘制三维散点图313
11.6.3绘制三维柱状图314
11.7绘制动画图315
11.8图像载入与展示318
11.8.1plt.imshow()展示图318
11.8.2plt.imread()载入图320
11.9习题321
第12章数据库编程322
12.1关系数据库322
12.1.1关系数据库概述322
12.1.2关系数据库访问322
12.2结构化查询语言SQL323
12.2.1建立和删除数据表323
12.2.2查询语句324
12.2.3添加、更新和删除语句324
12.3SQLite3数据库325
12.3.1创建与SQLite3数据库的连接325
12.3.2在SQLite数据库中创建和删除表327
12.3.3向表中插入数据328
12.3.4查询、修改和删除表中数据329
12.4Navicat 操作MySQL数据库330
12.4.1Navicat概述330
12.4.2Navicat 连接MySQL数据库330
12.4.3Navicat创建MySQL数据库331
12.4.4如何使用 Navicat 创建表331
12.5Python操作MySQL数据库333
12.5.1连接数据库333
12.5.2创建游标对象334
12.5.3创建数据库335
12.5.4创建数据表335
12.5.5插入数据337
12.5.6查询数据338
12.5.7更新和删除数据338
12.6习题339
参考文献340