注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)工業(yè)技術(shù)建筑科學(xué)建筑設(shè)計Python進(jìn)階編程:編寫更高效、優(yōu)雅的Python代碼

Python進(jìn)階編程:編寫更高效、優(yōu)雅的Python代碼

Python進(jìn)階編程:編寫更高效、優(yōu)雅的Python代碼

定 價:¥129.00

作 者: 劉宇宙,謝東,劉艷 著
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787111678502 出版時間: 2021-04-01 包裝: 平裝
開本: 16開 頁數(shù): 556 字?jǐn)?shù):  

內(nèi)容簡介

  本書將幫助讀者系統(tǒng)掌握編寫高效、優(yōu)雅的Python代碼的方法,快速成長為一位高水平的Python開發(fā)工程師。作者是Python編程領(lǐng)域的資深開發(fā)工程師,有多年的Python開發(fā)經(jīng)驗(yàn),本書得到了行業(yè)里15位技術(shù)專家的高度評價。為了幫助讀者編寫出高效的Python代碼,本書不僅從源代碼的角度系統(tǒng)地講解了Python的語法,讓讀者能知其然并知其所以然,而且結(jié)合具體的應(yīng)用需求,對并發(fā)編程、性能優(yōu)化、測試與調(diào)試、異常處理、內(nèi)存管理等Python開發(fā)中的高級知識進(jìn)行了詳細(xì)的講解。為了指導(dǎo)讀者編寫出更優(yōu)雅的Python代碼,本書針對具體問題給出了大量的實(shí)例代碼并給出了編碼風(fēng)格上的方法和建議。如果你是沒有Python編程經(jīng)驗(yàn)的新人,你將通過本書系統(tǒng)掌握Python語法及其背后的原理,并從一開始就養(yǎng)成良好的編碼習(xí)慣;如果你是有一定Python編程經(jīng)驗(yàn)的老手,你將通過本書掌握各種Python編程中的高級知識,同時領(lǐng)略到優(yōu)雅的編碼風(fēng)格和技巧。

作者簡介

  劉宇宙 資深開發(fā)工程師,目前就職于一家知名的頭部人工智能企業(yè),從事Python開發(fā)多年,積累了豐富的經(jīng)驗(yàn)。 先后從事卡系統(tǒng)、IaaS平臺、大數(shù)據(jù)系統(tǒng)、物聯(lián)網(wǎng)系統(tǒng)、網(wǎng)絡(luò)爬蟲軟件、圖像處理和自然語言處理相關(guān)的項(xiàng)目的研發(fā),現(xiàn)從事人工智能平臺的研發(fā)。 出版過多部Python編程和數(shù)據(jù)分析方面的著作,深受讀者歡迎。

圖書目錄

前言
第0章 Python總覽  1
0.1 Python總體架構(gòu)  1
0.2 Python源碼組織  2
0.3 Python對象初探  3
0.3.1 Python內(nèi)的對象  3
0.3.2 對象的分類  4
0.3.3 對象機(jī)制的基石—PyObject  5
0.3.4 定長對象和變長對象  5
0.3.5 類型對象  6
0.3.6 類型的類型  7
0.3.7 對象的創(chuàng)建  8
0.3.8 對象的行為  8
0.3.9 對象的多態(tài)性  9
0.3.10 引用計數(shù)  10
0.4 本章小結(jié)  11
第1章 數(shù)字對象  12
1.1 整數(shù)對象  12
1.1.1 PyLongObject對象  12
1.1.2 小整數(shù)對象  14
1.1.3 大整數(shù)對象  14
1.2 數(shù)字格式化輸出  14
1.3 進(jìn)制轉(zhuǎn)換  16
1.4 數(shù)字運(yùn)算  17
1.4.1 四舍五入運(yùn)算  17
1.4.2 浮點(diǎn)數(shù)運(yùn)算  19
1.4.3 復(fù)數(shù)運(yùn)算  20
1.4.4 分?jǐn)?shù)運(yùn)算  22
1.4.5 大型數(shù)組運(yùn)算  22
1.4.6 矩陣與線性代數(shù)運(yùn)算  25
1.5 字節(jié)到大整數(shù)的打包與解包  27
1.6 無窮大與NaN  28
1.7 隨機(jī)數(shù)  30
1.8 本章小結(jié)  32
第2章 字符串  33
2.1 字符串對象解析  33
2.1.1 字符串對象的intern機(jī)制  33
2.1.2 字符串操作效率  34
2.2 字符串操作  35
2.2.1 字符串分割  35
2.2.2 刪除不需要的字符  36
2.2.3 字符串清理  37
2.2.4 字符串對齊  39
2.2.5 字符串拼接  40
2.2.6 字符串插入  42
2.2.7 字符串格式化  43
2.2.8 處理HTML和XML文本  43
2.3 字符串匹配  44
2.3.1 字符串開頭或結(jié)尾匹配  44
2.3.2 用Shell通配符匹配字符串  46
2.3.3 字符串匹配和搜索  47
2.3.4 短匹配  49
2.3.5 多行匹配  50
2.4 字符串搜索  50
2.4.1 字符串搜索替換  50
2.4.2 字符串忽略大小寫的搜索替換  51
2.5 將Unicode文本標(biāo)準(zhǔn)化  52
2.6 在正則表達(dá)式中使用Unicode字符  54
2.7 令牌解析  55
2.8 簡單的遞歸下降分析器實(shí)現(xiàn)  57
2.9 字節(jié)字符串操作  64
2.10 本章小結(jié)  66
第3章 數(shù)據(jù)結(jié)構(gòu)  67
3.1 序列  67
3.1.1 序列對象解析  67
3.1.2 序列解壓  68
3.1.3 序列去重并保持順序  70
3.1.4 序列元素統(tǒng)計  71
3.1.5 過濾序列元素  72
3.1.6 序列元素名稱映射  74
3.1.7 轉(zhuǎn)換并計算數(shù)據(jù)  76
3.2 字典  77
3.2.1 字典對象解析  77
3.2.2 字典映射  79
3.2.3 字典排序  81
3.2.4 字典運(yùn)算  81
3.2.5 字典查找  83
3.2.6 通過關(guān)鍵字排序字典  84
3.2.7 字典提取  85
3.2.8 字典合并  86
3.3 可迭代對象操作  88
3.3.1 可迭代對象解壓  88
3.3.2 保留后N個元素  89
3.3.3 記錄分組  90
3.4 查找或小的N個元素  91
3.5 實(shí)現(xiàn)一個優(yōu)先級隊列  92
3.6 命名切片  95
3.7 排序不支持原生比較的對象  96
3.8 本章小結(jié)  97
第4章 迭代器與生成器  98
4.1 迭代操作  98
4.1.1 手動遍歷迭代器  98
4.1.2 代理迭代  99
4.1.3 實(shí)現(xiàn)迭代協(xié)議  100
4.1.4 反向迭代  102
4.1.5 迭代器切片  104
4.1.6 跳過可迭代對象的開始部分  104
4.1.7 排列組合的迭代  106
4.1.8 序列上索引值迭代  107
4.1.9 多個序列迭代  109
4.1.10 集合元素的迭代  111
4.1.11 順序迭代合并后的排序迭代對象  112
4.1.12 迭代器代替while無限循環(huán)  113
4.2 使用生成器創(chuàng)建新的迭代模式  113
4.3 帶有外部狀態(tài)的生成器函數(shù)  115
4.4 創(chuàng)建數(shù)據(jù)處理管道  116
4.5 展開嵌套的序列  118
4.6 本章小結(jié)  120
第5章 文件與I/O  121
5.1 讀/寫操作  121
5.1.1 讀/寫文本數(shù)據(jù)  121
5.1.2 讀/寫字節(jié)數(shù)據(jù)  123
5.1.3 讀/寫壓縮文件  124
5.2 文件操作  126
5.2.1 文件的寫入  126
5.2.2 操作文件路徑名  126
5.2.3 文件檢查  127
5.2.4 文件列表獲取  128
5.2.5 忽略文件名編碼  129
5.2.6 打印不合法的文件名  130
5.2.7 文件編碼變更  132
5.2.8 在文本文件中寫入字節(jié)  133
5.2.9 文件描述符包裝  134
5.2.10 創(chuàng)建臨時文件和文件夾  135
5.2.11 文件迭代  137
5.2.12 二進(jìn)制文件映射  137
5.3 使用分隔符或行終止符打印  139
5.4 字符串的I/O操作  140
5.5 可變緩沖區(qū)中二進(jìn)制數(shù)據(jù)的讀取  141
5.6 串行端口的數(shù)據(jù)通信  143
5.7 對象序列化  143
5.8 本章小結(jié)  146
第6章 數(shù)據(jù)編碼及處理  147
6.1 數(shù)據(jù)讀/寫  147
6.1.1 CSV數(shù)據(jù)讀/寫   147
6.1.2 JSON數(shù)據(jù)讀/寫  151
6.1.3 二進(jìn)制數(shù)組數(shù)據(jù)讀/寫  155
6.1.4 嵌套和可變長二進(jìn)制數(shù)據(jù)讀取  158
6.2 XML數(shù)據(jù)解析  166
6.2.1 簡單XML數(shù)據(jù)解析  166
6.2.2 解析XML文檔  167
6.2.3 修改XML  169
6.3 字典轉(zhuǎn)換為XML  170
6.4 與關(guān)系型數(shù)據(jù)庫的交互  172
6.5 編碼/解碼  174
6.5.1 十六進(jìn)制數(shù)編碼和解碼  174
6.5.2 編碼/解碼Base64數(shù)據(jù)  175
6.6 本章小結(jié)  176
第7章 函數(shù)  177
7.1 函數(shù)定義  177
7.1.1 有默認(rèn)參數(shù)的函數(shù)定義  177
7.1.2 匿名或內(nèi)聯(lián)函數(shù)定義  180
7.2 函數(shù)的參數(shù)  181
7.2.1 接收任意數(shù)量參數(shù)  181
7.2.2 接收關(guān)鍵字參數(shù)  183
7.2.3 為參數(shù)增加元信息  184
7.2.4 減少參數(shù)個數(shù)  185
7.3 返回多個值的函數(shù)  187
7.4 變量處理  188
7.4.1 匿名函數(shù)捕獲變量值  188
7.4.2 訪問閉包中定義的變量  190
7.5 類轉(zhuǎn)換為函數(shù)  192
7.6 回調(diào)函數(shù)  193
7.6.1 有額外狀態(tài)信息的回調(diào)函數(shù)  193
7.6.2 內(nèi)聯(lián)回調(diào)函數(shù)  196
7.7 本章小結(jié)  198
第8章 類與對象  199
8.1 對象處理  199
8.1.1 對象顯示  199
8.1.2 有效創(chuàng)建大量對象  200
8.1.3 由字符串調(diào)用對象  201
8.2 自定義格式化字符串  202
8.3 上下文管理協(xié)議  203
8.4 類的處理  205
8.4.1 封裝屬性名  205
8.4.2 調(diào)用父類方法  207
8.4.3 擴(kuò)展property  213
8.4.4 創(chuàng)建新的類或?qū)嵗龑傩? 217
8.4.5 定義多個構(gòu)造器  219
8.4.6 類中的比較操作  220
8.5 屬性處理  222
8.5.1 可管理屬性創(chuàng)建  222
8.5.2 延遲計算屬性  226
8.5.3 屬性的代理訪問  229
8.6 數(shù)據(jù)結(jié)構(gòu)的初始化  233
8.7 接口或者抽象基類定義  236
8.8 數(shù)據(jù)模型的類型約束  238
8.9 自定義容器  243
8.10 不調(diào)用init方法的實(shí)例創(chuàng)建  246
8.11 利用Mixin擴(kuò)展類功能  247
8.12 狀態(tài)對象實(shí)現(xiàn)  249
8.13 設(shè)計模式處理  252
8.13.1 訪問者模式  252
8.13.2 不用遞歸實(shí)現(xiàn)訪問者模式  255
8.14 數(shù)據(jù)結(jié)構(gòu)的內(nèi)存管理  259
8.15 創(chuàng)建緩存  262
8.16 本章小結(jié)  266
第9章 元編程  267
9.1 裝飾器  267
9.1.1 函數(shù)添加裝飾器  267
9.1.2 裝飾器中保留函數(shù)元信息  269
9.1.3 解除裝飾器  271
9.1.4 帶參數(shù)的裝飾器  272
9.1.5 裝飾器自定義屬性  273
9.1.6 帶可選參數(shù)的裝飾器  276
9.1.7 函數(shù)的類型檢查  278
9.1.8 類中定義裝飾器  281
9.1.9 裝飾器定義為類  282
9.1.10 類和靜態(tài)方法的裝飾器  285
9.1.11 給函數(shù)增加參數(shù)  287
9.1.12 擴(kuò)充類的功能  289
9.2 元類  291
9.2.1 控制實(shí)例創(chuàng)建  291
9.2.2 元類定義可選參數(shù)  293
9.3 類的屬性定義順序  295
9.4 強(qiáng)制參數(shù)簽名  297
9.5 強(qiáng)制使用編程規(guī)約  300
9.6 以編程方式定義類  303
9.7 初始化類的成員  306
9.8 利用注解實(shí)現(xiàn)方法重載  307
9.9 避免重復(fù)的屬性方法  313
9.10 定義上下文管理器  314
9.11 局部變量域中執(zhí)行代碼  316
9.12 Python源碼解析  319
9.13 Python字節(jié)碼拆解  322
9.14 本章小結(jié)  324
第10章 模塊與包  325
10.1 模塊處理  325
10.1.1 模塊層級  325
10.1.2 控制模塊的導(dǎo)入  326
10.1.3 重新加載模塊  327
10.1.4 通過字符串名導(dǎo)入模塊  328
10.1.5 遠(yuǎn)程加載模塊  329
10.1.6 導(dǎo)入模塊的同時修改模塊  346
10.2 讀取包中的數(shù)據(jù)文件  348
10.3 將文件夾加入sys.path  349
10.4 安裝私有的包  350
10.5 創(chuàng)建新的Python環(huán)境  350
10.6 分發(fā)包  352
10.7 本章小結(jié)  353
第11章 網(wǎng)絡(luò)編程  354
11.1 與HTTP服務(wù)交互  354
11.2 創(chuàng)建服務(wù)器  357
11.2.1 TCP服務(wù)器  357
11.2.2 UDP服務(wù)器  360
11.3 通過CIDR地址生成對應(yīng)的IP地址集  361
11.4 REST接口創(chuàng)建  363
11.5 遠(yuǎn)程調(diào)用  367
11.5.1 遠(yuǎn)程方法調(diào)用  367
11.5.2 通過XML-RPC遠(yuǎn)程調(diào)用  371
11.6 不同Python解釋器之間的交互  373
11.7 客戶端認(rèn)證  374
11.8 Socket文件描述符傳遞  376
11.9 事件驅(qū)動的I/O  380
11.10 大型數(shù)組發(fā)送與接收  385
11.11 本章小結(jié)  387
第12章 并發(fā)編程  388
12.1 線程處理  388
12.1.1 線程的啟動與停止  388
12.1.2 線程判斷  391
12.1.3 線程間通信  394
12.1.4 線程加鎖  398
12.1.5 防止死鎖  401
12.1.6 線程狀態(tài)信息保存  404
12.1.7 創(chuàng)建線程池  405
12.2 并行編程  408
12.3 全局鎖問題  412
12.4 Actor任務(wù)定義  414
12.5 消息發(fā)布/訂閱模型  417
12.6 生成器代替線程  420
12.7 線程隊列輪詢  427
12.8 守護(hù)進(jìn)程  429
12.9 本章小結(jié)  432
第13章 腳本編程與系統(tǒng)管理  433
13.1 腳本接收  433
13.2 終止程序  434
13.3 解析命令行選項(xiàng)  434
13.4 彈出密碼輸入提示  436
13.5 執(zhí)行外部命令  437
13.6 文件操作  439
13.6.1 文件和目錄的復(fù)制或移動  439
13.6.2 創(chuàng)建和解壓歸檔文件  440
13.6.3 文件查找  441
13.6.4 配置文件讀取  442
13.7 添加日志  444
13.7.1 腳本增加日志功能  444
13.7.2 函數(shù)庫增加日志功能  446
13.8 實(shí)現(xiàn)計時器  447
13.9 內(nèi)存和CPU監(jiān)測  449
13.10 啟動Web瀏覽器  450
13.11 本章小結(jié)  451
第14章 測試、調(diào)試和異常  452
14.1 測試  452
14.1.1 stdout輸出  452
14.1.2 對象打補(bǔ)丁  453
14.1.3 測試異常  455
14.1.4 記錄測試結(jié)果  457
14.1.5 性能測試  458
14.1.6 測試失敗處理  460
14.2 異常處理  461
14.2.1 捕獲所有異常  461
14.2.2 處理多個異常  462
14.2.3 自定義異常  464
14.2.4 拋出新的異常  466
14.2.5 異常重新拋出  468
14.2.6 警告信息  468
14.3 程序調(diào)試  470
14.4 加速程序運(yùn)行  472
14.5 實(shí)戰(zhàn)—自然語言處理  476
14.6 本章小結(jié)  502
第15章 Python的內(nèi)存管理機(jī)制  503
15.1 Python內(nèi)存架構(gòu)  503
15.2 小塊空間的內(nèi)存池  505
15.2.1 block  505
15.2.2 pool  506
15.2.3 arena  506
15.2.4 內(nèi)存池  507
15.3 循環(huán)引用的垃圾收集  509
15.3.1 引用計數(shù)與垃圾收集  509
15.3.2 三色標(biāo)記模型  510
15.4 Python垃圾收集  511
15.4.1 可收集對象鏈表  511
15.4.2 分代垃圾收集  513
15.4.3 Python中的標(biāo)記—清除方法  514
15.5 實(shí)戰(zhàn)——內(nèi)存監(jiān)控  516
15.6 本章小結(jié)  520
第16章 性能優(yōu)化與實(shí)踐  521
16.1 優(yōu)化的規(guī)則  521
16.1.1 先使程序可以正常工作  521
16.1.2 從用戶的角度進(jìn)行  522
16.1.3 保證代碼易讀  522
16.2 優(yōu)化策略  523
16.2.1 尋找其他原因  523
16.2.2 度量硬件  523
16.2.3 編寫速度測試代碼  523
16.3 查找瓶頸  524
16.3.1 剖析CPU使用情況  524
16.3.2 剖析內(nèi)存使用情況  528
16.4 降低復(fù)雜度  530
16.4.1 測量回路復(fù)雜度  530
16.4.2 測量大O記號  530
16.4.3 簡化  531
16.5 實(shí)戰(zhàn)——爬蟲程序的性能優(yōu)化  532
16.6 本章小結(jié)  537

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號