本書主要介紹Python的基礎(chǔ)安裝和進(jìn)階操作。全書共有9章,介紹了Python模塊,解釋器,裝飾器,collections,生成器、協(xié)同程序和并行處理,math模塊,PyPy,增強(qiáng)方案以及LyX的相關(guān)使用。本書包含大量的代碼示例可供讀者參考并實(shí)踐。
本書適合使用Python語言的算法工程師、后臺工程師、測試工程師以及運(yùn)維工程師閱讀,也適合有一定編碼基礎(chǔ)的人員自學(xué)Python或了解進(jìn)階知識。
1.本書通過解決實(shí)際問題來介紹Python的編程技巧。
2.書中包含代碼示例,可供讀者下載重用。
3.書中詳細(xì)介紹了Python編程的操作步驟和使用到的Python模塊等,讀者通過閱讀,能系統(tǒng)地了Python編程的技巧。
通過查看模塊的實(shí)際工作方式,您將發(fā)現(xiàn)與標(biāo)準(zhǔn)庫實(shí)現(xiàn)相關(guān)的秘密。您還將了解集合和數(shù)學(xué)模塊的正確實(shí)現(xiàn)。如果您以前沒有使用過裝飾器、協(xié)同程序和生成器函數(shù),那么通過閱讀本書,您將受益匪淺。
我們將詳細(xì)介紹Python內(nèi)部的特殊方法,幫助您了解它們是什么以及如何使用它們來改進(jìn)您所做的工程決策。接下來,您將探索CPython解釋器,它是許多程序員都不知道的秘密黑客的寶庫。另外,我們還將帶您深入了解PyPy項(xiàng)目,接觸幾種新的方法來提高應(yīng)用程序的速度和并發(fā)性。
我們還將介紹幾種Python增強(qiáng)方案,幫助您了解Python未來的發(fā)展趨勢。
您將學(xué)到以下內(nèi)容:
■了解.py文件和.pyc文件之間的區(qū)別
■探索安裝和升級Python軟件包的不同方法
■了解如何通過PyPI分發(fā)軟件包
■確定協(xié)同程序與生成器有何不同以及它們?nèi)绾文M多線程
■掌握小數(shù)模塊如何改進(jìn)浮點(diǎn)數(shù)及其操作
■標(biāo)準(zhǔn)化子解釋器以提高并發(fā)性
■如何使用PyPy改善Python性能
■裝飾器如何簡化程序功能
Cody Jackson是一位軍事老兵,也是德克薩斯圣安東尼奧的IT和商業(yè)管理咨詢公司SoCuff咨詢公司的創(chuàng)始人。他在CACI國際公司擔(dān)任建設(shè)性建模師。自1994以來,他一直參與高科技產(chǎn)業(yè)。他在ECPI大學(xué)擔(dān)任計(jì)算機(jī)信息系統(tǒng)兼職教授。他是自學(xué)Python,也是Learning to Program Using Python系列叢書的作者。
第 1章 使用Python模塊 1
1.1 介紹 1
1.2 使用和導(dǎo)入模塊以及命名空間 2
1.2.1 實(shí)現(xiàn)方法 3
1.2.2 工作原理 5
1.2.3 擴(kuò)展知識 6
1.3 實(shí)現(xiàn)Python虛擬環(huán)境 9
1.3.1 準(zhǔn)備工作 10
1.3.2 實(shí)現(xiàn)方法 12
1.3.3 工作原理 13
1.3.4 擴(kuò)展知識 13
1.4 Python包安裝選項(xiàng) 13
1.4.1 實(shí)現(xiàn)方法 14
1.4.2 工作原理 15
1.5 利用需求文件并解決沖突 15
1.5.1 實(shí)現(xiàn)方法 16
1.5.2 工作原理 17
1.5.3 擴(kuò)展知識 17
1.6 使用本地補(bǔ)丁和約束文件 17
1.6.1 實(shí)現(xiàn)方法 18
1.6.2 工作原理 19
1.6.3 擴(kuò)展知識 19
1.7 使用包 20
1.7.1 實(shí)現(xiàn)方法 20
1.7.2 工作原理 21
1.7.3 擴(kuò)展知識 22
1.8 創(chuàng)建wheel和bundle 22
1.8.1 實(shí)現(xiàn)方法 23
1.8.2 工作原理 23
1.8.3 擴(kuò)展知識 24
1.9 源代碼與字節(jié)碼的比較 24
1.9.1 實(shí)現(xiàn)方法 24
1.9.2 工作原理 25
1.9.3 擴(kuò)展知識 25
1.10 如何創(chuàng)建和引用模塊包 25
1.10.1 實(shí)現(xiàn)方法 26
1.10.2 工作原理 27
1.10.3 擴(kuò)展知識 27
1.11 操作系統(tǒng)專用二進(jìn)制文件 28
1.11.1 實(shí)現(xiàn)方法 30
1.11.2 擴(kuò)展知識 33
1.12 如何上傳程序到PyPI 33
1.12.1 準(zhǔn)備工作 34
1.12.2 實(shí)現(xiàn)方法 34
1.12.3 工作原理 34
1.13 項(xiàng)目打包 37
1.14 上傳到PyPI 39
1.14.1 準(zhǔn)備工作 39
1.14.2 實(shí)現(xiàn)方法 39
1.14.3 工作原理 40
第 2章 使用Python解釋器 41
2.1 介紹 41
2.2 登錄Python環(huán)境 42
2.2.1 實(shí)現(xiàn)方法 42
2.2.2 工作原理 42
2.3 利用Python命令選項(xiàng) 43
2.3.1 實(shí)現(xiàn)方法 43
2.3.2 工作原理 44
2.3.3 接口選項(xiàng) 44
2.3.4 通用選項(xiàng) 45
2.3.5 雜項(xiàng)選項(xiàng) 45
2.4 處理環(huán)境變量 47
2.4.1 實(shí)現(xiàn)方法 48
2.4.2 工作原理 48
2.5 使腳本可執(zhí)行 51
2.5.1 實(shí)現(xiàn)方法 51
2.5.2 擴(kuò)展知識 51
2.6 修改交互式解釋器的啟動(dòng)文件 52
2.7 Python的其他實(shí)現(xiàn)方法 52
2.7.1 實(shí)現(xiàn)方法 53
2.7.2 擴(kuò)展知識 54
2.8 在Windows操作系統(tǒng)上安裝Python 55
2.8.1 準(zhǔn)備工作 56
2.8.2 實(shí)現(xiàn)方法 56
2.9 使用基于Windows操作系統(tǒng)的Python啟動(dòng)器 57
2.10 將Python嵌入其他應(yīng)用程序 58
2.10.1 實(shí)現(xiàn)方法 58
2.10.2 工作原理 59
2.11 Python Shell的替代品—IPython 60
2.11.1 準(zhǔn)備工作 61
2.11.2 實(shí)現(xiàn)方法 62
2.11.3 擴(kuò)展知識 64
2.12 Python Shell的替代品—bpython 64
2.12.1 準(zhǔn)備工作 65
2.12.2 實(shí)現(xiàn)方法 65
2.12.3 擴(kuò)展知識 66
2.13 Python Shell的替代品—DreamPie 66
2.13.1 準(zhǔn)備工作 67
2.13.2 實(shí)現(xiàn)方法 67
2.13.3 擴(kuò)展知識 67
第3章 使用裝飾器 68
3.1 介紹 68
3.2 回顧函數(shù) 69
3.2.1 實(shí)現(xiàn)方法 69
3.2.2 工作原理 71
3.3 裝飾器簡介 71
3.3.1 實(shí)現(xiàn)方法 72
3.3.2 工作原理 74
3.4 使用函數(shù)裝飾器 74
3.4.1 實(shí)現(xiàn)方法 75
3.4.2 工作原理 76
3.5 使用類裝飾器 78
3.6 裝飾器示例 81
3.6.1 準(zhǔn)備工作 82
3.6.2 實(shí)現(xiàn)方法 82
3.6.3 工作原理 85
3.6.4 擴(kuò)展知識 86
3.7 使用裝飾器模塊 89
3.7.1 實(shí)現(xiàn)方法 90
3.7.2 工作原理 92
3.7.3 擴(kuò)展知識 92
第4章 使用Python collections 93
4.1 介紹 93
4.2 回顧容器 94
4.2.1 實(shí)現(xiàn)方法 94
4.2.2 擴(kuò)展知識 96
4.3 實(shí)現(xiàn)namedtuple 99
4.3.1 實(shí)現(xiàn)方法 100
4.3.2 擴(kuò)展知識 102
4.4 實(shí)現(xiàn)雙端隊(duì)列 105
4.5 實(shí)現(xiàn)ChainMap 110
4.6 實(shí)現(xiàn)計(jì)數(shù)器 114
4.6.1 實(shí)現(xiàn)方法 114
4.6.2 擴(kuò)展知識 117
4.7 實(shí)現(xiàn)OrderedDict 117
4.8 實(shí)現(xiàn)defaultdict 121
4.9 實(shí)現(xiàn)UserDict 124
4.10 實(shí)現(xiàn)UserList 125
4.10.1 實(shí)現(xiàn)方法 126
4.10.2 擴(kuò)展知識 127
4.11 實(shí)現(xiàn)UserString 127
4.12 優(yōu)化Python collections 128
4.13 窺探collections-extended模塊 135
4.13.1 準(zhǔn)備工作 136
4.13.2 實(shí)現(xiàn)方法 137
第5章 生成器、協(xié)同程序和并行處理 143
5.1 介紹 143
5.2 Python中的迭代是如何工作的 144
5.3 使用itertools模塊 148
5.4 使用生成器函數(shù) 165
5.4.1 實(shí)現(xiàn)方法 165
5.4.2 工作原理 166
5.4.3 擴(kuò)展知識 167
5.5 使用協(xié)同程序模擬多線程 168
5.5.1 實(shí)現(xiàn)方法 169
5.5.2 擴(kuò)展知識 171
5.6 何時(shí)使用并行處理 172
5.6.1 實(shí)現(xiàn)方法 172
5.6.2 擴(kuò)展知識 173
5.7 Fork進(jìn)程 173
5.7.1 實(shí)現(xiàn)方法 174
5.7.2 工作原理 174
5.7.3 擴(kuò)展知識 175
5.8 如何實(shí)現(xiàn)多線程 175
5.8.1 實(shí)現(xiàn)方法 176
5.8.2 擴(kuò)展知識 180
5.9 如何實(shí)現(xiàn)多進(jìn)程 181
5.9.1 實(shí)現(xiàn)方法 182
5.9.2 擴(kuò)展知識 184
第6章 使用Python的math模塊 186
6.1 介紹 186
6.2 使用math模塊的函數(shù)和常量 187
6.3 處理復(fù)數(shù) 202
6.4 改善小數(shù) 205
6.5 提高分?jǐn)?shù)精度 209
6.6 處理隨機(jī)數(shù) 210
6.7 使用secrets模塊 215
6.8 實(shí)現(xiàn)基本統(tǒng)計(jì)操作 216
6.9 使用comath改進(jìn)功能 221
6.9.1 準(zhǔn)備工作 221
6.9.2 實(shí)現(xiàn)方法 221
第7章 使用PyPy提升Python性能 225
7.1 介紹 225
7.2 什么是PyPy 226
7.2.1 準(zhǔn)備工作 227
7.2.2 實(shí)現(xiàn)方法 228
7.2.3 擴(kuò)展知識 232
7.3 什么是RPython 233
7.3.1 實(shí)現(xiàn)方法 233
7.3.2 擴(kuò)展知識 235
7.4 現(xiàn)實(shí)示例 235
7.4.1 實(shí)現(xiàn)方法 236
7.4.2 擴(kuò)展知識 241
第8章 Python增強(qiáng)方案 242
8.1 介紹 242
8.2 PEP 242
8.2.1 實(shí)現(xiàn)方法 243
8.2.2 擴(kuò)展知識 245
8.3 PEP 556—線程垃圾回收 246
8.3.1 準(zhǔn)備工作 246
8.3.2 實(shí)現(xiàn)方法 247
8.3.3 擴(kuò)展知識 251
8.4 PEP 554—多個(gè)子解釋器 252
8.4.1 實(shí)現(xiàn)方法 252
8.4.2 工作原理 256
8.4.3 擴(kuò)展知識 257
8.5 PEP 551—安全透明度 258
8.5.1 準(zhǔn)備工作 258
8.5.2 實(shí)現(xiàn)方法 259
8.6 PEP 543—統(tǒng)一的TLS API 261
8.6.1 實(shí)現(xiàn)方法 262
8.6.2 擴(kuò)展知識 263
第9章 使用LyX寫文檔 264
9.1 介紹 264
9.2 Python文檔工具和技術(shù) 265
9.3 行內(nèi)注釋和dir命令 266
9.4 使用文檔字符串 268
9.4.1 實(shí)現(xiàn)方法 269
9.4.2 擴(kuò)展知識 274
9.5 使用PyDoc幫助 277
9.6 HTML報(bào)告 278
9.7 使用reStructuredText文件 282
9.7.1 準(zhǔn)備工作 283
9.7.2 實(shí)現(xiàn)方法 283
9.8 使用Sphinx文檔程序 286
9.8.1 準(zhǔn)備工作 286
9.8.2 實(shí)現(xiàn)方法 286
9.9 使用LaTeX和LyX文檔編寫程序 293
9.9.1 準(zhǔn)備工作 294
9.9.2 實(shí)現(xiàn)方法 294
9.9.3 擴(kuò)展知識 299