第1章 Python语言基础 1
1.1 Python语言的特点 1
1.2 Python应用领域 2
1.3 Python解释器 3
1.4 Python开发环境的安装 3
1.5 编写Python代码 6
1.5.1 用文本编辑器编写代码 6
1.5.2 用命令行格式的Python Shell编写代码 9
1.5.3 用带图形界面的Python Shell编写交互式代码 10
1.5.4 用带图形界面的Python Shell编写程序代码 11
1.6 Python中的注释 12
1.6.1 Python中的单行注释 12
1.6.2 Python中的多行注释 12
1.7 Python中的对象 12
1.7.1 对象的身份 13
1.7.2 对象的类型 13
1.7.3 对象的值 13
1.7.4 对象的引用 13
1.7.5 对象的共享引用 14
1.7.6 对象是否相等的判断 14
1.8 Python中的变量 15
1.9 Python中的基本数据类型 15
1.9.1 number 16
1.9.2 string 17
1.9.3 list 31
1.9.4 tuple 39
1.9.5 dictionary 41
1.9.6 set 46
1.9.7 Python数据类型之间的转换 49
1.10 Python中的运算符 51
1.11 Python中的数据输入 56
1.12 Python中的数据输出 57
1.12.1 表达式语句输出 57
1.12.2 print()函数输出 58
1.12.3 字符串对象的format方法的格式化输出 60
1.13 Python中的文件的基本操作 63
1.14 Python库的导入与扩展库的安装 64
1.14.1 库的导入 64
1.14.2 扩展库的安装 65
习题 66
第2章 选择结构程序设计 68
2.1 布尔表达式 68
2.2 选择结构 69
2.2.1 单向if语句 69
2.2.2 双向if-else语句 70
2.2.3 嵌套if和多向if-elif-else语句 71
2.3 条件表达式 73
2.4 选择结构程序举例 74
习题 77
第3章 循环结构程序设计 78
3.1 while循环 78
3.2 循环控制策略 83
3.2.1 交互式循环 83
3.2.2 哨兵式循环 84
3.2.3 文件式循环 85
3.3 for循环 86
3.3.1 for循环的基本用法 86
3.3.2 for循环与range()函数的结合使用 89
3.4 循环中的break、continue和else 92
3.4.1 用break语句提前终止循环 92
3.4.2 用continue语句提前结束本次循环 93
3.4.3 循环语句的else子句 93
3.5 循环结构程序举例 96
习题 100
第4章 函数 101
4.1 为什么要用函数 101
4.2 怎样定义函数 103
4.3 函数调用 104
4.3.1 带有返回值的函数调用 104
4.3.2 不带返回值的函数调用 107
4.4 函数参数传递 107
4.5 函数参数的类型 108
4.5.1 位置参数 108
4.5.2 关键字参数 108
4.5.3 默认值参数 109
4.5.4 可变长度参数 109
4.5.5 序列解包参数 110
4.6 函数模块化 112
4.7 lambda表达式 113
4.7.1 lambda和def的区别 114
4.7.2 自由变量对lambda表达式的影响 116
4.8 变量的作用域 117
4.8.1 变量的局部作用域 117
4.8.2 变量的全局作用域 118
4.8.3 变量的嵌套作用域 119
4.9 函数的递归调用 120
4.10 常用内置函数 124
4.10.1 map()函数 124
4.10.2 reduce()函数 125
4.10.3 filter()函数 127
4.11 函数举例 127
习题 133
第5章 正则表达式 134
5.1 什么是正则表达式 134
5.2 正则表达式的构成 134
5.3 正则表达式的模式匹配 137
5.3.1 正则表达式的边界匹配 137
5.3.2 正则表达式的分组、选择和引用匹配 138
5.3.3 正则表达式的贪婪匹配与懒惰匹配 141
5.4 正则表达式模块re 142
5.5 正则表达式对象 145
5.6 Match对象 148
5.7 正则表达式举例 150
习题 152
第6章 文件与文件夹操作 154
6.1 文本文件 154
6.1.1 文本文件的字符编码 154
6.1.2 文本文件的打开 156
6.1.3 文本文件的写入 159
6.1.4 文本文件的读取 160
6.1.5 文本文件指针的定位 162
6.2 二进制文件 163
6.2.1 二进制文件的写入 163
6.2.2 二进制文件的读取 164
6.2.3 字节数据类型的转换 164
6.3 文件与文件夹操作 166
6.3.1 使用os操作文件与文件夹 166
6.3.2 使用os.path操作文件与文件夹 168
6.3.3 使用shutil操作文件与文件夹 170
6.4 csv文件的读取和写入 172
6.4.1 使用csv.reader()读取csv文件 172
6.4.2 使用csv.writer()写入csv文件 173
6.4.3 使用csv.DictReader()读取csv文件 175
6.4.4 使用csv.DictWriter()写入csv文件 176
6.4.5 csv文件的格式化参数 177
6.4.6 自定义dialect 179
6.5 文件与文件操作举例 180
习题 181
第7章 面向对象程序设计 182
7.1 定义类 183
7.2 创建类的对象 184
7.3 类中的属性 185
7.3.1 类的对象属性 185
7.3.2 类属性 186
7.3.3 私有属性和公有属性 188
7.3.4 @property装饰器 189
7.4 类中的方法 192
7.4.1 类的对象方法 192
7.4.2 类方法 194
7.4.3 类的静态方法 195
7.5 类的继承 196
7.5.1 单继承 196
7.5.2 类的多重继承 200
7.5.3 类成员的继承和重写 203
7.5.4 查看继承的层次关系 203
7.6 object类 204
7.7 对象的引用、浅复制和深复制 205
7.7.1 对象的引用 205
7.7.2 对象的浅复制 208
7.7.3 对象的深复制 209
7.8 面向对象程序举例 210
习题 213
第8章 模块和包 214
8.1 模块 214
8.1.1 模块的创建 214
8.1.2 模块的导入和使用 215
8.1.3 模块的主要属性 216
8.2 导入模块时搜索目录的顺序与系统目录的添加 219
8.2.1 导入模块时搜索目录的顺序 219
8.2.2 使用sys.path.append()临时增添系统目录 220
8.2.3 使用pth文件永久添加系统目录 220
8.2.4 使用PYTHONPATH环境变量永久添加系统目录 221
8.3 包 221
8.3.1 包的创建 221
8.3.2 包的导入与使用 222
习题 223
第9章 算法与数据结构基础 224
9.1 算法概述 224
9.2 查找算法 225
9.2.1 顺序查找 225
9.2.2 二分查找 226
9.2.3 插值查找 228
9.3 排序算法 229
9.3.1 冒泡排序 229
9.3.2 选择排序 230
9.3.3 插入排序 231
9.3.4 归并排序 232
9.3.5 快速排序 233
9.4 常用数据结构 235
9.4.1 自定义矩阵 235
9.4.2 自定义栈 240
9.4.3 自定义队列 242
9.4.4 自定义二叉树 245
习题 252
第10章 错误和异常处理 253
10.1 程序的错误 253
10.1.1 常犯的9个错误 253
10.1.2 常见的错误类型 256
10.2 异常处理概述 259
10.2.1 异常概述 259
10.2.2 异常类型 259
10.2.3 异常处理 260
10.2.4 主动抛出异常 265
10.2.5 自定义异常类 267
10.3 断言处理 269
10.3.1 断言处理概述 269
10.3.2 启用/禁用断言 270
10.3.3 断言使用场景 270
10.4 程序的调试方法 272
10.4.1 使用print调试 272
10.4.2 使用IDLE调试 272
10.4.3 使用pdb调试 276
习题 283
第11章 图形用户界面 284
11.1 图形用户界面库 284
11.2 tkinter模块 285
11.2.1 tkinter概述 285
11.2.2 tkinter图形用户界面的构成 286
11.3 tkinter主要的构件类 287
11.3.1 Label类 287
11.3.2 Button类 291
11.3.3 Radiobutton类 295
11.3.4 Checkbutton类 296
11.3.5 Listbox类 298
11.3.6 Menu类 301
11.3.7 Message类 305
11.3.8 Entry类 307
11.3.9 Text类 308
11.3.10 Frame类 312
11.4 几何布局管理器 312
11.4.1 pack布局管理器 313
11.4.2 grid布局管理器 314
11.4.3 place布局管理器 316
习题 317
第12章 用matplotlib实现数据可视化 318
12.1 matplotlib架构 318
12.1.1 后端层 319
12.1.2 表现层 319
12.1.3 脚本层 321
12.2 matplotlib的pyplot子库 322
12.2.1 绘制线形图 324
12.2.2 绘制直方图 331
12.2.3 绘制条形图 333
12.2.4 绘制饼图 336
12.2.5 绘制散点图 339
习题 341
参考文献 342