本书主要介绍Python的基础安装和进阶操作。全书共有9章,介绍了Python模块,解释器,装饰器,collections,生成器、协同程序和并行处理,math模块,PyPy,增强方案以及LyX的相关使用。本书包含大量的代码示例可供读者参考并实践。
本书适合使用Python语言的算法工程师、后台工程师、测试工程师以及运维工程师阅读,也适合有一定编码基础的人员自学Python或了解进阶知识。
1.本书通过解决实际问题来介绍Python的编程技巧。
2.书中包含代码示例,可供读者下载重用。
3.书中详细介绍了Python编程的操作步骤和使用到的Python模块等,读者通过阅读,能系统地了Python编程的技巧。
通过查看模块的实际工作方式,您将发现与标准库实现相关的秘密。您还将了解集合和数学模块的正确实现。如果您以前没有使用过装饰器、协同程序和生成器函数,那么通过阅读本书,您将受益匪浅。
我们将详细介绍Python内部的特殊方法,帮助您了解它们是什么以及如何使用它们来改进您所做的工程决策。接下来,您将探索CPython解释器,它是许多程序员都不知道的秘密黑客的宝库。另外,我们还将带您深入了解PyPy项目,接触几种新的方法来提高应用程序的速度和并发性。
我们还将介绍几种Python增强方案,帮助您了解Python未来的发展趋势。
您将学到以下内容:
■了解.py文件和.pyc文件之间的区别
■探索安装和升级Python软件包的不同方法
■了解如何通过PyPI分发软件包
■确定协同程序与生成器有何不同以及它们如何模拟多线程
■掌握小数模块如何改进浮点数及其操作
■标准化子解释器以提高并发性
■如何使用PyPy改善Python性能
■装饰器如何简化程序功能
Cody Jackson是一位军事老兵,也是德克萨斯圣安东尼奥的IT和商业管理咨询公司SoCuff咨询公司的创始人。他在CACI国际公司担任建设性建模师。自1994以来,他一直参与高科技产业。他在ECPI大学担任计算机信息系统兼职教授。他是自学Python,也是Learning to Program Using Python系列丛书的作者。
第 1章 使用Python模块 1
1.1 介绍 1
1.2 使用和导入模块以及命名空间 2
1.2.1 实现方法 3
1.2.2 工作原理 5
1.2.3 扩展知识 6
1.3 实现Python虚拟环境 9
1.3.1 准备工作 10
1.3.2 实现方法 12
1.3.3 工作原理 13
1.3.4 扩展知识 13
1.4 Python包安装选项 13
1.4.1 实现方法 14
1.4.2 工作原理 15
1.5 利用需求文件并解决冲突 15
1.5.1 实现方法 16
1.5.2 工作原理 17
1.5.3 扩展知识 17
1.6 使用本地补丁和约束文件 17
1.6.1 实现方法 18
1.6.2 工作原理 19
1.6.3 扩展知识 19
1.7 使用包 20
1.7.1 实现方法 20
1.7.2 工作原理 21
1.7.3 扩展知识 22
1.8 创建wheel和bundle 22
1.8.1 实现方法 23
1.8.2 工作原理 23
1.8.3 扩展知识 24
1.9 源代码与字节码的比较 24
1.9.1 实现方法 24
1.9.2 工作原理 25
1.9.3 扩展知识 25
1.10 如何创建和引用模块包 25
1.10.1 实现方法 26
1.10.2 工作原理 27
1.10.3 扩展知识 27
1.11 操作系统专用二进制文件 28
1.11.1 实现方法 30
1.11.2 扩展知识 33
1.12 如何上传程序到PyPI 33
1.12.1 准备工作 34
1.12.2 实现方法 34
1.12.3 工作原理 34
1.13 项目打包 37
1.14 上传到PyPI 39
1.14.1 准备工作 39
1.14.2 实现方法 39
1.14.3 工作原理 40
第 2章 使用Python解释器 41
2.1 介绍 41
2.2 登录Python环境 42
2.2.1 实现方法 42
2.2.2 工作原理 42
2.3 利用Python命令选项 43
2.3.1 实现方法 43
2.3.2 工作原理 44
2.3.3 接口选项 44
2.3.4 通用选项 45
2.3.5 杂项选项 45
2.4 处理环境变量 47
2.4.1 实现方法 48
2.4.2 工作原理 48
2.5 使脚本可执行 51
2.5.1 实现方法 51
2.5.2 扩展知识 51
2.6 修改交互式解释器的启动文件 52
2.7 Python的其他实现方法 52
2.7.1 实现方法 53
2.7.2 扩展知识 54
2.8 在Windows操作系统上安装Python 55
2.8.1 准备工作 56
2.8.2 实现方法 56
2.9 使用基于Windows操作系统的Python启动器 57
2.10 将Python嵌入其他应用程序 58
2.10.1 实现方法 58
2.10.2 工作原理 59
2.11 Python Shell的替代品—IPython 60
2.11.1 准备工作 61
2.11.2 实现方法 62
2.11.3 扩展知识 64
2.12 Python Shell的替代品—bpython 64
2.12.1 准备工作 65
2.12.2 实现方法 65
2.12.3 扩展知识 66
2.13 Python Shell的替代品—DreamPie 66
2.13.1 准备工作 67
2.13.2 实现方法 67
2.13.3 扩展知识 67
第3章 使用装饰器 68
3.1 介绍 68
3.2 回顾函数 69
3.2.1 实现方法 69
3.2.2 工作原理 71
3.3 装饰器简介 71
3.3.1 实现方法 72
3.3.2 工作原理 74
3.4 使用函数装饰器 74
3.4.1 实现方法 75
3.4.2 工作原理 76
3.5 使用类装饰器 78
3.6 装饰器示例 81
3.6.1 准备工作 82
3.6.2 实现方法 82
3.6.3 工作原理 85
3.6.4 扩展知识 86
3.7 使用装饰器模块 89
3.7.1 实现方法 90
3.7.2 工作原理 92
3.7.3 扩展知识 92
第4章 使用Python collections 93
4.1 介绍 93
4.2 回顾容器 94
4.2.1 实现方法 94
4.2.2 扩展知识 96
4.3 实现namedtuple 99
4.3.1 实现方法 100
4.3.2 扩展知识 102
4.4 实现双端队列 105
4.5 实现ChainMap 110
4.6 实现计数器 114
4.6.1 实现方法 114
4.6.2 扩展知识 117
4.7 实现OrderedDict 117
4.8 实现defaultdict 121
4.9 实现UserDict 124
4.10 实现UserList 125
4.10.1 实现方法 126
4.10.2 扩展知识 127
4.11 实现UserString 127
4.12 优化Python collections 128
4.13 窥探collections-extended模块 135
4.13.1 准备工作 136
4.13.2 实现方法 137
第5章 生成器、协同程序和并行处理 143
5.1 介绍 143
5.2 Python中的迭代是如何工作的 144
5.3 使用itertools模块 148
5.4 使用生成器函数 165
5.4.1 实现方法 165
5.4.2 工作原理 166
5.4.3 扩展知识 167
5.5 使用协同程序模拟多线程 168
5.5.1 实现方法 169
5.5.2 扩展知识 171
5.6 何时使用并行处理 172
5.6.1 实现方法 172
5.6.2 扩展知识 173
5.7 Fork进程 173
5.7.1 实现方法 174
5.7.2 工作原理 174
5.7.3 扩展知识 175
5.8 如何实现多线程 175
5.8.1 实现方法 176
5.8.2 扩展知识 180
5.9 如何实现多进程 181
5.9.1 实现方法 182
5.9.2 扩展知识 184
第6章 使用Python的math模块 186
6.1 介绍 186
6.2 使用math模块的函数和常量 187
6.3 处理复数 202
6.4 改善小数 205
6.5 提高分数精度 209
6.6 处理随机数 210
6.7 使用secrets模块 215
6.8 实现基本统计操作 216
6.9 使用comath改进功能 221
6.9.1 准备工作 221
6.9.2 实现方法 221
第7章 使用PyPy提升Python性能 225
7.1 介绍 225
7.2 什么是PyPy 226
7.2.1 准备工作 227
7.2.2 实现方法 228
7.2.3 扩展知识 232
7.3 什么是RPython 233
7.3.1 实现方法 233
7.3.2 扩展知识 235
7.4 现实示例 235
7.4.1 实现方法 236
7.4.2 扩展知识 241
第8章 Python增强方案 242
8.1 介绍 242
8.2 PEP 242
8.2.1 实现方法 243
8.2.2 扩展知识 245
8.3 PEP 556—线程垃圾回收 246
8.3.1 准备工作 246
8.3.2 实现方法 247
8.3.3 扩展知识 251
8.4 PEP 554—多个子解释器 252
8.4.1 实现方法 252
8.4.2 工作原理 256
8.4.3 扩展知识 257
8.5 PEP 551—安全透明度 258
8.5.1 准备工作 258
8.5.2 实现方法 259
8.6 PEP 543—统一的TLS API 261
8.6.1 实现方法 262
8.6.2 扩展知识 263
第9章 使用LyX写文档 264
9.1 介绍 264
9.2 Python文档工具和技术 265
9.3 行内注释和dir命令 266
9.4 使用文档字符串 268
9.4.1 实现方法 269
9.4.2 扩展知识 274
9.5 使用PyDoc帮助 277
9.6 HTML报告 278
9.7 使用reStructuredText文件 282
9.7.1 准备工作 283
9.7.2 实现方法 283
9.8 使用Sphinx文档程序 286
9.8.1 准备工作 286
9.8.2 实现方法 286
9.9 使用LaTeX和LyX文档编写程序 293
9.9.1 准备工作 294
9.9.2 实现方法 294
9.9.3 扩展知识 299