书籍详情
细说Python编程:从入门到科学计算
作者:凌峰、韩晓泉
出版社:清华大学出版社
出版时间:2023-07-01
ISBN:9787302637998
定价:¥149.00
购买这本书可以去
内容简介
《细说Python编程:从入门到科学计算》以Python 3.x为平台,由两位博士执笔,详尽细致地阐述Python编程的基础知识和高级技巧,并以大量示例代码进行实践,同时还介绍人工智能领域广泛使用的科学计算工具NumPy。《细说Python编程:从入门到科学计算》分为两篇,共19章。第1篇(第1~11章)为基础知识,主要讲解Python的编译环境、入门知识、字符串、容器、函数、循环、条件选择、模块、类、类的特殊成员、文件;第2篇(第12~19章)为高级应用,包括异常处理、日期和时间、测试代码、程序打包、使用数据库、网络编程、图形用户界面、科学计算等内容。全书知识点丰富,辅之以示例演示,读者可以边学边练,快速掌握。 《细说Python编程:从入门到科学计算》还提供了16小时共151节微课教学视频,读者扫码即可观看学习,免费提供的示例源码文件可直接调用,方便上机操练。 《细说Python编程:从入门到科学计算》深入浅出,内容新颖,涉及面广,适合想要学习Python编程的各层次读者。
作者简介
凌峰,毕业于中国科学院大学,博士,高级职称,从事机器学习、人工智能、图像处理、计算机视觉的研究与开发工作多年,拥有丰富的机器学习算法实现经验,身手不凡,却不喜欢抛头露面,是一位真正低调的AI高手。韩晓泉,毕业于中国科学院研究生院,博士,正高级职称,从事集成电路制造装备与光电精密测控研发工作近二十年,熟悉控制算法、机器视觉、光电测量和数据处理等研究方向,发表论文30余篇,授权发明专利10余项。
目录
第1篇 基础知识
第 1 章 构建Python开发环境3
1.1 初识Python3
1.2 安装Python4
1.2.1 在Windows环境下安装5
1.2.2 在Linux环境下安装7
1.2.3 在Mac环境下安装7
1.3 Python IDE和Anaconda介绍7
1.3.1 Python IDE8
1.3.2 PyCharm10
1.3.3 Anaconda介绍15
1.4 认识Python程序15
1.4.1 命令行15
1.4.2 Python代码行16
1.4.3 Python脚本17
1.4.4 缩进17
1.4.5 注释19
1.5 小结19
第 2 章 开始你的Python编程20
2.1 Python的基本编码规范20
2.2 关键字24
2.3 常量与变量24
2.4 标识符26
2.5 运算符27
2.5.1 算术运算符27
2.5.2 比较运算符28
2.5.3 逻辑运算符29
2.5.4 位运算符29
2.5.5 成员运算符30
2.5.6 身份运算符30
2.5.7 赋值运算符31
2.5.8 运算符优先级32
2.6 数据类型33
2.6.1 整数型33
2.6.2 浮点型35
2.6.3 复数型36
2.6.4 字节型37
2.6.5 布尔型38
2.6.6 字符串型39
2.7 内置函数42
2.7.1 内置函数的概念42
2.7.2 几个常用的内置函数43
2.8 小结46
第 3 章 字符串47
3.1 字符串的基本操作47
3.1.1 字符串索引和切片47
3.1.2 字符串是不可变的50
3.1.3 字符串拼接50
3.1.4 字符串长度52
3.1.5 字符串分割54
3.1.6 返回字符串中最大的字母和最小的字母55
3.1.7 字符串填充56
3.2 转义字符57
3.3 字符串运算符59
3.4 字符串格式化60
3.5 字符串检索与统计61
3.5.1 统计字符串出现的次数61
3.5.2 检测字符串中是否包含某子串63
3.5.3 检索字符串开头和结尾65
3.6 字符串大小写转换66
3.6.1 大小写全部转换67
3.6.2 字符串头部大小写转换68
3.6.3 大小写反转69
3.6.4 字符串替换69
3.7 删除指定字符串70
3.8 字符串合并72
3.9 字符串对齐72
3.9.1 ljust()方法73
3.9.2 rjust()方法74
3.9.3 center()方法75
3.10 字符串编解码76
3.10.1 字符串编码76
3.10.2 字符串解码77
3.11 小结78
第 4 章 容器79
4.1 列表79
4.1.1 列表的创建方法79
4.1.2 列表的基本操作81
4.1.3 列表方法84
4.1.4 创建数字列表89
4.2 元组90
4.2.1 元组的创建方法90
4.2.2 元组的访问91
4.3 字典93
4.3.1 字典的应用93
4.3.2 创建字典93
4.3.3 字典的常见操作94
4.3.4 字符串用于字典96
4.3.5 字典方法96
4.3.6 使用字典时的注意事项104
4.4 集合105
4.4.1 集合的创建105
4.4.2 集合方法106
4.5 容器嵌套112
4.5.1 字典列表113
4.5.2 在字典中存储列表113
4.6 小结113
第 5 章 函数114
5.1 函数的定义和调用114
5.1.1 函数的定义115
5.1.2 函数的调用116
5.1.3 提供说明文档116
5.2 函数参数和返回值117
5.2.1 函数参数及其传递117
5.2.2 关键字参数119
5.2.3 位置参数119
5.2.4 默认参数121
5.2.5 不定长参数122
5.2.6 函数的返回值123
5.3 空值125
5.4 变量的作用域126
5.4.1 局部变量126
5.4.2 全局变量128
5.5 局部函数129
5.6 exec()函数和eval()函数132
5.7 函数的高级话题134
5.7.1 lambda匿名函数135
5.7.2 函数式编程136
5.7.3 闭包函数138
5.7.4 递归139
5.8 小结141
第 6 章 循环142
6.1 while循环142
6.1.1 while的用法142
6.1.2 while...else语句144
6.1.3 while嵌套144
6.2 for循环145
6.2.1 for的用法145
6.2.2 for...else语句147
6.2.3 for嵌套148
6.2.4 使用for循环遍历字典150
6.3 break语句153
6.4 continue语句155
6.5 pass语句156
6.6 循环中的常用内置函数157
6.6.1 zip()函数157
6.6.2 reversed()函数158
6.6.3 sorted()函数160
6.7 小结162
第 7 章 条件选择163
7.1 if语句详解163
7.1.1 if语句164
7.1.2 if else语句164
7.1.3 if elif else166
7.2 条件测试167
7.2.1 是否相等167
7.2.2 是否不相等168
7.2.3 比较数字169
7.2.4 检查多个条件169
7.2.5 检查字典中的特定值170
7.3 if语句处理列表171
7.3.1 确定列表不是空的171
7.3.2 处理列表中的特殊元素171
7.3.3 多个列表172
7.4 条件语句和循环语句结合应用173
7.4.1 实现简单的用户登录验证程序173
7.4.2 打印空心等边三角形173
7.4.3 打印空心菱形174
7.4.4 打印空心正方形175
7.5 小结176
第 8 章 模块、包和标准库177
8.1 模块177
8.1.1 创建模块178
8.1.2 使用模块180
8.2 包182
8.2.1 创建包182
8.2.2 安装包183
8.3 探索模块185
8.3.1 模块包含什么185
8.3.2 使用help获取帮助186
8.3.3 文档187
8.3.4 使用源代码188
8.4 标准库188
8.4.1 os189
8.4.2 sys190
8.4.3 random191
8.4.4 re194
8.4.5 其他常用的标准模块200
8.5 小结201
第 9 章 类202
9.1 一切皆对象202
9.1.1 面向对象概述202
9.1.2 面向对象相关术语204
9.2 创建和使用类204
9.2.1 如何定义类204
9.2.2 __init__()类的构造方法206
9.2.3 类的实例化207
9.2.4 类对象的使用208
9.2.5 self用法详解212
9.2.6 使用type()函数动态创建类214
9.2.7 MetaClass元类215
9.3 类属性和实例属性217
9.3.1 类变量(类属性)217
9.3.2 实例变量(实例属性)221
9.3.3 类的局部变量224
9.3.4 使用property()函数定义属性224
9.3.5 限制类实例动态添加属性和方法227
9.4 方法230
9.4.1 实例方法230
9.4.2 静态方法231
9.4.3 类方法232
9.4.4 调用实例方法233
9.4.5 描述符233
9.4.6 @property装饰器235
9.5 Python类命名空间237
9.6 封装238
9.6.1 Python类的封装239
9.6.2 封装底层实现原理241
9.7 类的继承242
9.7.1 单继承243
9.7.2 多继承244
9.7.3 子类继承父类构造函数说明246
9.7.4 父类方法重写248
9.7.5 super()使用注意事项250
9.8 多态及用法详解252
9.9 接口254
9.10 抽象基类256
9.11 枚举类的定义和使用258
9.12 搜索引擎的实现263
9.13 面向对象编程建议266
9.13.1 与类相关的编码风格266
9.13.2 编程建议266
9.14 小结267
第 10 章 类的特殊成员268
10.1 常用类的特殊方法268
10.1.1 创建类实例269
10.1.2 显示属性270
10.1.3 销毁对象271
10.1.4 列出对象的所有属性(方法)273
10.1.5 查看对象的内部属性274
10.1.6 __call__()方法277
10.2 常用函数及用法278
10.2.1 hasattr()函数278
10.2.2 getattr()函数279
10.2.3 setattr()函数280
10.2.4 类型检查282
10.3 运算符重载285
10.3.1 何谓运算符重载285
10.3.2 使用重载运算符实现自定义序列287
10.4 迭代器和生成器289
10.4.1 迭代器289
10.4.2 生成器292
10.4.3 生成器方法294
10.5 函数装饰器298
10.5.1 函数装饰器的原理298
10.5.2 含参函数装饰器300
10.5.3 函数装饰器嵌套301
10.6 装饰器的应用场景302
10.6.1 身份认证302
10.6.2 日志记录303
10.6.3 输入合理性检查303
10.6.4 缓存装饰器304
10.7 小结304
第 11 章 文件305
11.1 打开文件305
11.2 文件对象的基本操作307
11.2.1 读取与写入307
11.2.2 使用管道重定向输出308
11.2.3 读取和写入行309
11.2.4 关闭文件314
11.3 迭代文件内容315
11.3.1 每次读取一个字符(或字节)315
11.3.2 每次一行316
11.3.3 读取所有内容317
11.3.4 延迟行迭代实现318
11.3.5 文件迭代器318
11.4 使用tell()函数和seek()函数读写文件319
11.4.1 tell()函数的使用320
11.4.2 seek()函数的使用320
11.5 with as的用法322
11.6 上下文管理器323
11.6.1 基于类实现323
11.6.2 基于生成器实现324
11.7 常用的文件模块325
11.7.1 pickle模块325
11.7.2 linecache模块328
11.7.3 pathlib模块329
11.7.4 fnmatch模块333
11.7.5 os模块334
11.8 tempfile模块343
11.9 小结345
第 2 篇 高级应用
第 12 章 异常349
12.1 异常是什么349
12.2 Python常见的异常类型350
12.2.1 Python语法错误350
12.2.2 Python运行时错误350
12.3 raise的用法355
12.3.1 raise语句的用法355
12.3.2 自定义异常类356
12.4 捕获异常357
12.4.1 raise捕获异常358
12.4.2 复杂except子句360
12.4.3 一次捕获多种异常361
12.4.4 捕获对象362
12.4.5 捕获所有异常362
12.4.6 捕获异常并顺利执行代码363
12.4.7 finally子句365
12.5 跟踪异常信息367
12.5.1 异常和函数367
12.5.2 sys.exc_info()方法368
12.5.3 traceback模块369
12.6 警告371
12.7 小结373
第 13 章 日期和时间374
13.1 Python中几个与时间相关的术语374
13.2 Python中时间的表示375
13.3 time模块376
13.4 datetime模块379
13.4.1 datetime.date类379
13.4.2 datetime.time类382
13.4.3 datetime.datetime类383
13.4.4 时间戳与时间字符串转换386
13.4.5 datetime.timedelta类387
13.5 calendar模块389
13.6 时间格式化输出391
13.7 小结392
第 14 章 测试代码393
14.1 先测试,再编码393
14.1.1 准确的需求说明394
14.1.2 做好应对变化的准备394
14.1.3 测试四步曲395
14.2 测试工具396
14.2.1 doctest框架的使用396
14.2.2 unittest的简单使用397
14.3 超越单元测试400
14.3.1 源代码检查400
14.3.2 性能分析402
14.4 小结402
第 15 章 程序打包403
15.1 Setuptools基础403
15.2 打包405
15.3 编译扩展406
15.4 创建可执行程序407
15.5 小结408
第 16 章 使用数据库409
16.1 数据库API409
16.1.1 全局变量410
16.1.2 异常410
16.1.3 连接和游标411
16.1.4 类型412
16.2 SQLite和PySQLite413
16.2.1 SQLite起步413
16.2.2 数据库应用示例414
16.3 小结416
第 17 章 网络编程417
17.1 网络模块417
17.1.1 socket模块417
17.1.2 urllib和urllib2模块419
17.1.3 其他模块420
17.2 SocketServer模块及相关的类420
17.3 处理多个连接421
17.3.1 分叉和线程化实现421
17.3.2 异步I/O实现422
17.4 Twisted424
17.4.1 下载并安装Twisted425
17.4.2 编写Twisted服务器425
17.5 小结427
第 18 章 图形用户界面428
18.1 建立简单的Python GUI428
18.1.1 准备工作429
18.1.2 GUI布局430
18.1.3 事件处理431
18.1.4 GUI文本编辑器432
18.2 Tkinter编程433
18.2.1 Tkinter控件及使用434
18.2.2 Tkinter的应用434
18.3 小结436
第 19 章 科学计算437
19.1 NumPy基础437
19.1.1 NumPy概述438
19.1.2 ndarray对象438
19.1.3 NumPy数据类型对象440
19.2 数组属性与创建数组442
19.2.1 数组属性442
19.2.2 创建数组445
19.2.3 从已有的数组创建数组447
19.2.4 从数值范围创建数组449
19.3 切片和索引452
19.3.1 切片和索引452
19.3.2 整数数组索引454
19.3.3 布尔索引455
19.3.4 花式索引456
19.4 迭代数组457
19.4.1 控制遍历顺序458
19.4.2 修改数组中元素的值460
19.4.3 使用外部循环460
19.5 处理数组461
19.5.1 修改数组形状461
19.5.2 翻转数组464
19.5.3 修改数组维度468
19.5.4 连接数组472
19.5.5 分割数组475
19.5.6 数组元素的添加与删除478
19.6 使用数学运算函数484
19.6.1 算术函数485
19.6.2 三角函数488
19.6.3 舍入函数490
19.7 小结491
参考文献492
第 1 章 构建Python开发环境3
1.1 初识Python3
1.2 安装Python4
1.2.1 在Windows环境下安装5
1.2.2 在Linux环境下安装7
1.2.3 在Mac环境下安装7
1.3 Python IDE和Anaconda介绍7
1.3.1 Python IDE8
1.3.2 PyCharm10
1.3.3 Anaconda介绍15
1.4 认识Python程序15
1.4.1 命令行15
1.4.2 Python代码行16
1.4.3 Python脚本17
1.4.4 缩进17
1.4.5 注释19
1.5 小结19
第 2 章 开始你的Python编程20
2.1 Python的基本编码规范20
2.2 关键字24
2.3 常量与变量24
2.4 标识符26
2.5 运算符27
2.5.1 算术运算符27
2.5.2 比较运算符28
2.5.3 逻辑运算符29
2.5.4 位运算符29
2.5.5 成员运算符30
2.5.6 身份运算符30
2.5.7 赋值运算符31
2.5.8 运算符优先级32
2.6 数据类型33
2.6.1 整数型33
2.6.2 浮点型35
2.6.3 复数型36
2.6.4 字节型37
2.6.5 布尔型38
2.6.6 字符串型39
2.7 内置函数42
2.7.1 内置函数的概念42
2.7.2 几个常用的内置函数43
2.8 小结46
第 3 章 字符串47
3.1 字符串的基本操作47
3.1.1 字符串索引和切片47
3.1.2 字符串是不可变的50
3.1.3 字符串拼接50
3.1.4 字符串长度52
3.1.5 字符串分割54
3.1.6 返回字符串中最大的字母和最小的字母55
3.1.7 字符串填充56
3.2 转义字符57
3.3 字符串运算符59
3.4 字符串格式化60
3.5 字符串检索与统计61
3.5.1 统计字符串出现的次数61
3.5.2 检测字符串中是否包含某子串63
3.5.3 检索字符串开头和结尾65
3.6 字符串大小写转换66
3.6.1 大小写全部转换67
3.6.2 字符串头部大小写转换68
3.6.3 大小写反转69
3.6.4 字符串替换69
3.7 删除指定字符串70
3.8 字符串合并72
3.9 字符串对齐72
3.9.1 ljust()方法73
3.9.2 rjust()方法74
3.9.3 center()方法75
3.10 字符串编解码76
3.10.1 字符串编码76
3.10.2 字符串解码77
3.11 小结78
第 4 章 容器79
4.1 列表79
4.1.1 列表的创建方法79
4.1.2 列表的基本操作81
4.1.3 列表方法84
4.1.4 创建数字列表89
4.2 元组90
4.2.1 元组的创建方法90
4.2.2 元组的访问91
4.3 字典93
4.3.1 字典的应用93
4.3.2 创建字典93
4.3.3 字典的常见操作94
4.3.4 字符串用于字典96
4.3.5 字典方法96
4.3.6 使用字典时的注意事项104
4.4 集合105
4.4.1 集合的创建105
4.4.2 集合方法106
4.5 容器嵌套112
4.5.1 字典列表113
4.5.2 在字典中存储列表113
4.6 小结113
第 5 章 函数114
5.1 函数的定义和调用114
5.1.1 函数的定义115
5.1.2 函数的调用116
5.1.3 提供说明文档116
5.2 函数参数和返回值117
5.2.1 函数参数及其传递117
5.2.2 关键字参数119
5.2.3 位置参数119
5.2.4 默认参数121
5.2.5 不定长参数122
5.2.6 函数的返回值123
5.3 空值125
5.4 变量的作用域126
5.4.1 局部变量126
5.4.2 全局变量128
5.5 局部函数129
5.6 exec()函数和eval()函数132
5.7 函数的高级话题134
5.7.1 lambda匿名函数135
5.7.2 函数式编程136
5.7.3 闭包函数138
5.7.4 递归139
5.8 小结141
第 6 章 循环142
6.1 while循环142
6.1.1 while的用法142
6.1.2 while...else语句144
6.1.3 while嵌套144
6.2 for循环145
6.2.1 for的用法145
6.2.2 for...else语句147
6.2.3 for嵌套148
6.2.4 使用for循环遍历字典150
6.3 break语句153
6.4 continue语句155
6.5 pass语句156
6.6 循环中的常用内置函数157
6.6.1 zip()函数157
6.6.2 reversed()函数158
6.6.3 sorted()函数160
6.7 小结162
第 7 章 条件选择163
7.1 if语句详解163
7.1.1 if语句164
7.1.2 if else语句164
7.1.3 if elif else166
7.2 条件测试167
7.2.1 是否相等167
7.2.2 是否不相等168
7.2.3 比较数字169
7.2.4 检查多个条件169
7.2.5 检查字典中的特定值170
7.3 if语句处理列表171
7.3.1 确定列表不是空的171
7.3.2 处理列表中的特殊元素171
7.3.3 多个列表172
7.4 条件语句和循环语句结合应用173
7.4.1 实现简单的用户登录验证程序173
7.4.2 打印空心等边三角形173
7.4.3 打印空心菱形174
7.4.4 打印空心正方形175
7.5 小结176
第 8 章 模块、包和标准库177
8.1 模块177
8.1.1 创建模块178
8.1.2 使用模块180
8.2 包182
8.2.1 创建包182
8.2.2 安装包183
8.3 探索模块185
8.3.1 模块包含什么185
8.3.2 使用help获取帮助186
8.3.3 文档187
8.3.4 使用源代码188
8.4 标准库188
8.4.1 os189
8.4.2 sys190
8.4.3 random191
8.4.4 re194
8.4.5 其他常用的标准模块200
8.5 小结201
第 9 章 类202
9.1 一切皆对象202
9.1.1 面向对象概述202
9.1.2 面向对象相关术语204
9.2 创建和使用类204
9.2.1 如何定义类204
9.2.2 __init__()类的构造方法206
9.2.3 类的实例化207
9.2.4 类对象的使用208
9.2.5 self用法详解212
9.2.6 使用type()函数动态创建类214
9.2.7 MetaClass元类215
9.3 类属性和实例属性217
9.3.1 类变量(类属性)217
9.3.2 实例变量(实例属性)221
9.3.3 类的局部变量224
9.3.4 使用property()函数定义属性224
9.3.5 限制类实例动态添加属性和方法227
9.4 方法230
9.4.1 实例方法230
9.4.2 静态方法231
9.4.3 类方法232
9.4.4 调用实例方法233
9.4.5 描述符233
9.4.6 @property装饰器235
9.5 Python类命名空间237
9.6 封装238
9.6.1 Python类的封装239
9.6.2 封装底层实现原理241
9.7 类的继承242
9.7.1 单继承243
9.7.2 多继承244
9.7.3 子类继承父类构造函数说明246
9.7.4 父类方法重写248
9.7.5 super()使用注意事项250
9.8 多态及用法详解252
9.9 接口254
9.10 抽象基类256
9.11 枚举类的定义和使用258
9.12 搜索引擎的实现263
9.13 面向对象编程建议266
9.13.1 与类相关的编码风格266
9.13.2 编程建议266
9.14 小结267
第 10 章 类的特殊成员268
10.1 常用类的特殊方法268
10.1.1 创建类实例269
10.1.2 显示属性270
10.1.3 销毁对象271
10.1.4 列出对象的所有属性(方法)273
10.1.5 查看对象的内部属性274
10.1.6 __call__()方法277
10.2 常用函数及用法278
10.2.1 hasattr()函数278
10.2.2 getattr()函数279
10.2.3 setattr()函数280
10.2.4 类型检查282
10.3 运算符重载285
10.3.1 何谓运算符重载285
10.3.2 使用重载运算符实现自定义序列287
10.4 迭代器和生成器289
10.4.1 迭代器289
10.4.2 生成器292
10.4.3 生成器方法294
10.5 函数装饰器298
10.5.1 函数装饰器的原理298
10.5.2 含参函数装饰器300
10.5.3 函数装饰器嵌套301
10.6 装饰器的应用场景302
10.6.1 身份认证302
10.6.2 日志记录303
10.6.3 输入合理性检查303
10.6.4 缓存装饰器304
10.7 小结304
第 11 章 文件305
11.1 打开文件305
11.2 文件对象的基本操作307
11.2.1 读取与写入307
11.2.2 使用管道重定向输出308
11.2.3 读取和写入行309
11.2.4 关闭文件314
11.3 迭代文件内容315
11.3.1 每次读取一个字符(或字节)315
11.3.2 每次一行316
11.3.3 读取所有内容317
11.3.4 延迟行迭代实现318
11.3.5 文件迭代器318
11.4 使用tell()函数和seek()函数读写文件319
11.4.1 tell()函数的使用320
11.4.2 seek()函数的使用320
11.5 with as的用法322
11.6 上下文管理器323
11.6.1 基于类实现323
11.6.2 基于生成器实现324
11.7 常用的文件模块325
11.7.1 pickle模块325
11.7.2 linecache模块328
11.7.3 pathlib模块329
11.7.4 fnmatch模块333
11.7.5 os模块334
11.8 tempfile模块343
11.9 小结345
第 2 篇 高级应用
第 12 章 异常349
12.1 异常是什么349
12.2 Python常见的异常类型350
12.2.1 Python语法错误350
12.2.2 Python运行时错误350
12.3 raise的用法355
12.3.1 raise语句的用法355
12.3.2 自定义异常类356
12.4 捕获异常357
12.4.1 raise捕获异常358
12.4.2 复杂except子句360
12.4.3 一次捕获多种异常361
12.4.4 捕获对象362
12.4.5 捕获所有异常362
12.4.6 捕获异常并顺利执行代码363
12.4.7 finally子句365
12.5 跟踪异常信息367
12.5.1 异常和函数367
12.5.2 sys.exc_info()方法368
12.5.3 traceback模块369
12.6 警告371
12.7 小结373
第 13 章 日期和时间374
13.1 Python中几个与时间相关的术语374
13.2 Python中时间的表示375
13.3 time模块376
13.4 datetime模块379
13.4.1 datetime.date类379
13.4.2 datetime.time类382
13.4.3 datetime.datetime类383
13.4.4 时间戳与时间字符串转换386
13.4.5 datetime.timedelta类387
13.5 calendar模块389
13.6 时间格式化输出391
13.7 小结392
第 14 章 测试代码393
14.1 先测试,再编码393
14.1.1 准确的需求说明394
14.1.2 做好应对变化的准备394
14.1.3 测试四步曲395
14.2 测试工具396
14.2.1 doctest框架的使用396
14.2.2 unittest的简单使用397
14.3 超越单元测试400
14.3.1 源代码检查400
14.3.2 性能分析402
14.4 小结402
第 15 章 程序打包403
15.1 Setuptools基础403
15.2 打包405
15.3 编译扩展406
15.4 创建可执行程序407
15.5 小结408
第 16 章 使用数据库409
16.1 数据库API409
16.1.1 全局变量410
16.1.2 异常410
16.1.3 连接和游标411
16.1.4 类型412
16.2 SQLite和PySQLite413
16.2.1 SQLite起步413
16.2.2 数据库应用示例414
16.3 小结416
第 17 章 网络编程417
17.1 网络模块417
17.1.1 socket模块417
17.1.2 urllib和urllib2模块419
17.1.3 其他模块420
17.2 SocketServer模块及相关的类420
17.3 处理多个连接421
17.3.1 分叉和线程化实现421
17.3.2 异步I/O实现422
17.4 Twisted424
17.4.1 下载并安装Twisted425
17.4.2 编写Twisted服务器425
17.5 小结427
第 18 章 图形用户界面428
18.1 建立简单的Python GUI428
18.1.1 准备工作429
18.1.2 GUI布局430
18.1.3 事件处理431
18.1.4 GUI文本编辑器432
18.2 Tkinter编程433
18.2.1 Tkinter控件及使用434
18.2.2 Tkinter的应用434
18.3 小结436
第 19 章 科学计算437
19.1 NumPy基础437
19.1.1 NumPy概述438
19.1.2 ndarray对象438
19.1.3 NumPy数据类型对象440
19.2 数组属性与创建数组442
19.2.1 数组属性442
19.2.2 创建数组445
19.2.3 从已有的数组创建数组447
19.2.4 从数值范围创建数组449
19.3 切片和索引452
19.3.1 切片和索引452
19.3.2 整数数组索引454
19.3.3 布尔索引455
19.3.4 花式索引456
19.4 迭代数组457
19.4.1 控制遍历顺序458
19.4.2 修改数组中元素的值460
19.4.3 使用外部循环460
19.5 处理数组461
19.5.1 修改数组形状461
19.5.2 翻转数组464
19.5.3 修改数组维度468
19.5.4 连接数组472
19.5.5 分割数组475
19.5.6 数组元素的添加与删除478
19.6 使用数学运算函数484
19.6.1 算术函数485
19.6.2 三角函数488
19.6.3 舍入函数490
19.7 小结491
参考文献492
猜您喜欢