Python Cookbook(第3版)PDF高清完整版免費下載|百度網盤|Python新手入門

来源:https://www.cnblogs.com/sahnhe/archive/2020/07/27/13387869.html
-Advertisement-
Play Games

百度雲盤:Python Cookbook(第3版)PDF高清完整版免費下載 提取碼:i2y5 豆瓣評分: 內容簡介 《Python Cookbook(第3版)中文版》介紹了Python應用在各個領域中的一些使用技巧和方法,其主題涵蓋了數據結構和演算法,字元串和文本,數字、日期和時間,迭代器和生成器,文 ...


百度雲盤:Python Cookbook(第3版)PDF高清完整版免費下載

提取碼:i2y5

 

豆瓣評分:

 

 

 

 

內容簡介  

《Python Cookbook(第3版)中文版》介紹了Python應用在各個領域中的一些使用技巧和方法,其主題涵蓋了數據結構和演算法,字元串和文本,數字、日期和時間,迭代器和生成器,文件和I/O,數據編碼與處理,函數,類與對象,元編程,模塊和包,網路和Web編程,併發,實用腳本和系統管理,測試、調試以及異常,C語言擴展等。

本書覆蓋了Python應用中的很多常見問題,並提出了通用的解決方案。書中包含了大量實用的編程技巧和示例代碼,併在Python 3.3環境下進行了測試,可以很方便地應用到實際項目中去。此外,《Python Cookbook(第3版)中文版》還詳細講解瞭解決方案是如何工作的,以及為什麼能夠工作。

《Python Cookbook(第3版)中文版》非常適合具有一定編程基礎的Python程式員閱讀參考。

 

作者簡介  

David Beazley是一位居住在芝加哥的獨立軟體開發者以及圖書作者。他主要的工作在於編程工具,提供定製化的軟體開發服務,以及為軟體開發者、科學家和工程師教授編程實踐課程。他最為人熟知的工作在於Python編程語言,他已為此創建了好幾個開源的軟體包(例如Swig和PLY),並且是備受贊譽的圖書Python Essential Reference的作者。他也對C、C++以及彙編語言下的系統編程有著豐富的經驗。

Brain K. Jones是普林斯頓大學電腦系的一位系統管理員。

 

目錄  · · · · · ·

目錄
第1章 數據結構和演算法 1
1.1 將序列分解為單獨的變數 1
1.2 從任意長度的可迭代對象中分解元素 3
1.3 保存最後N個元素 5
1.4 找到最大或最小的N個元素 7
1.5 實現優先順序隊列 9
1.6 在字典中將鍵映射到多個值上 11
1.7 讓字典保持有序 13
1.8 與字典有關的計算問題 14
1.9 在兩個字典中尋找相同點 15
1.10 從序列中移除重覆項且保持元素間順序不變 17
1.11 對切片命名 18
1.12 找出序列中出現次數最多的元素 20
1.13 通過公共鍵對字典列表排序 22
1.14 對不原生支持比較操作的對象排序 23
1.15 根據欄位將記錄分組 25
1.16 篩選序列中的元素 26
1.17 從字典中提取子集 29
1.18 將名稱映射到序列的元素中 30
1.19 同時對數據做轉換和換算 33
1.20 將多個映射合併為單個映射 34
第2章 字元串和文本 37
2.1 針對任意多的分隔符拆分字元串 37
2.2 在字元串的開頭或結尾處做文本匹配 38
2.3 利用Shell通配符做字元串匹配 40
2.4 文本模式的匹配和查找 42
2.5 查找和替換文本 45
2.6 以不區分大小寫的方式對文本做查找和替換 47
2.7 定義實現最短匹配的正則表達式 48
2.8 編寫多行模式的正則表達式 49
2.9 將Unicode文本統一表示為規範形式 50
2.10 用正則表達式處理Unicode字元 52
2.11 從字元串中去掉不需要的字元 53
2.12 文本過濾和清理 54
2.13 對齊文本字元串 57
2.14 字元串連接及合併 59
2.15 給字元串中的變數名做插值處理 62
2.16 以固定的列數重新格式化文本 64
2.17 在文本中處理HTML和XML實體 66
2.18 文本分詞 67
2.19 編寫一個簡單的遞歸下降解析器 70
2.20 在位元組串上執行文本操作 80
第3章 數字、日期和時間 83
3.1 對數值進行取整 83
3.2 執行精確的小數計算 85
3.3 對數值做格式化輸出 87
3.4 同二進位、八進位和十六進位數打交道 89
3.5 從位元組串中打包和解包大整數 90
3.6 複數運算 92
3.7 處理無窮大和NaN 94
3.8 分數的計算 96
3.9 處理大型數組的計算 97
3.10 矩陣和線性代數的計算 101
3.11 隨機選擇 103
3.12 時間換算 105
3.13 計算上周5的日期 107
3.14 找出當月的日期範圍 108
3.15 將字元串轉換為日期 110
3.16 處理涉及到時區的日期問題 112
第4章 迭代器和生成器 114
4.1 手動訪問迭代器中的元素 114
4.2 委托迭代 115
4.3 用生成器創建新的迭代模式 116
4.4 實現迭代協議 118
4.5 反向迭代 121
4.6 定義帶有額外狀態的生成器函數 122
4.7 對迭代器做切片操作 123
4.8 跳過可迭代對象中的前一部分元素 124
4.9 迭代所有可能的組合或排列 127
4.10 以索引-值對的形式迭代序列 129
4.11 同時迭代多個序列 131
4.12 在不同的容器中進行迭代 133
4.13 創建處理數據的管道 134
4.14 扁平化處理嵌套型的序列 137
4.15 合併多個有序序列,再對整個有序序列進行迭代 139
4.16 用迭代器取代while迴圈 140
第5章 文件和I/O 142
5.1 讀寫文本數據 142
5.2 將輸出重定向到文件中 145
5.3 以不同的分隔符或行結尾符完成列印 145
5.4 讀寫二進位數據 146
5.5 對已不存在的文件執行寫入操作 149
5.6 在字元串上執行I/O操作 150
5.7 讀寫壓縮的數據文件 151
5.8 對固定大小的記錄進行迭代 152
5.9 將二進位數據讀取到可變緩衝區中 153
5.10 對二進位文件做記憶體映射 155
5.11 處理路徑名 157
5.12 檢測文件是否存在 158
5.13 獲取目錄內容的列表 159
5.14 繞過文件名編碼 161
5.15 列印無法解碼的文件名 162
5.16 為已經打開的文件添加或修改編碼方式 164
5.17 將位元組數據寫入文本文件 166
5.18 將已有的文件描述符包裝為文件對象 167
5.19 創建臨時文件和目錄 169
5.20 同串口進行通信 171
5.21 序列化Python對象 172
第6章 數據編碼與處理 177
6.1 讀寫CSV數據 177
6.2 讀寫JSON數據 181
6.3 解析簡單的XML文檔 186
6.4 以增量方式解析大型XML文件 188
6.5 將字典轉換為XML 192
6.6 解析、修改和重寫XML 194
6.7 用命名空間來解析XML文檔 196
6.8 同關係型資料庫進行交互 198
6.9 編碼和解碼十六進位數字 201
6.10 Base64編碼和解碼 202
6.11 讀寫二進位結構的數組 203
6.12 讀取嵌套型和大小可變的二進位結構 207
6.13 數據彙總和統計 218
第7章 函數 221
7.1 編寫可接受任意數量參數的函數 221
7.2 編寫只接受關鍵字參數的函數 223
7.3 將元數據信息附加到函數參數上 224
7.4 從函數中返回多個值 225
7.5 定義帶有預設參數的函數 226
7.6 定義匿名或內聯函數 229
7.7 在匿名函數中綁定變數的值 230
7.8 讓帶有N個參數的可調用對象以較少的參數形式調用 232
7.9 用函數替代只有單個方法的類 235
7.10 在回調函數中攜帶額外的狀態 236
7.11 內聯回調函數 240
7.12 訪問定義在閉包內的變數 242
第8章 類與對象 246
8.1 修改實例的字元串表示 246
8.2 自定義字元串的輸出格式 248
8.3 讓對象支持上下文管理協議 249
8.4 當創建大量實例時如何節省記憶體 251
8.5 將名稱封裝到類中 252
8.6 創建可管理的屬性 254
8.7 調用父類中的方法 259
8.8 在子類中擴展屬性 263
8.9 創建一種新形式的類屬性或實例屬性 267
8.10 讓屬性具有惰性求值的能力 271
8.11 簡化數據結構的初始化過程 274
8.12 定義一個介面或抽象基類 278
8.13 實現一種數據模型或類型系統 281
8.14 實現自定義的容器 287
8.15 委托屬性的訪問 291
8.16 在類中定義多個構造函數 296
8.17 不通過調用init來創建實例 298
8.18 用Mixin技術來擴展類定義 299
8.19 實現帶有狀態的對象或狀態機 305
8.20 調用對象上的方法,方法名以字元串形式給出 311
8.21 實現訪問者模式 312
8.22 實現非遞歸的訪問者模式 317
8.23 在環狀數據結構中管理記憶體 324
8.24 讓類支持比較操作 327
8.25 創建緩存實例 330
第9章 元編程 335
9.1 給函數添加一個包裝 335
9.2 編寫裝飾器時如何保存函數的元數據 337
9.3 對裝飾器進行解包裝 339
9.4 定義一個可接受參數的裝飾器 341
9.5 定義一個屬性可由用戶修改的裝飾器 342
9.6 定義一個能接收可選參數的裝飾器 346
9.7 利用裝飾器對函數參數強制執行類型檢查 348
9.8 在類中定義裝飾器 352
9.9 把裝飾器定義成類 354
9.10 把裝飾器作用到類和靜態方法上 357
9.11 編寫裝飾器為被包裝的函數添加參數 359
9.12 利用裝飾器給類定義打補丁 362
9.13 利用元類來控制實例的創建 364
9.14 獲取類屬性的定義順序 367
9.15 定義一個能接受可選參數的元類 370
9.16 在*args和**kwargs上強制規定一種參數簽名 372
9.17 在類中強制規定編碼約定 375
9.18 通過編程的方式來定義類 378
9.19 在定義的時候初始化類成員 382
9.20 通過函數註解來實現方法重載 384
9.21 避免出現重覆的屬性方法 391
9.22 以簡單的方式定義上下文管理器 393
9.23 執行帶有局部副作用的代碼 395
9.24 解析並分析Python源代碼 398
9.25 將Python源碼分解為位元組碼 402
第10章 模塊和包 406
10.1 把模塊按層次結構組織成包 406
10.2 對所有符號的導入進行精確控制 407
10.3 用相對名稱來導入包中的子模塊 408
10.4 將模塊分解成多個文件 410
10.5 讓各個目錄下的代碼在統一的命名空間下導入 413
10.6 重新載入模塊 415
10.7 讓目錄或zip文件成為可運行的腳本 416
10.8 讀取包中的數據文件 417
10.9 添加目錄到sys.path中 418
10.10 使用字元串中給定的名稱來導入模塊 420
10.11 利用import鉤子從遠端機器上載入模塊 421
10.12 在模塊載入時為其打補丁 439
10.13 安裝只為自己所用的包 441
10.14 創建新的Python環境 442
10.15 發佈自定義的包 444
第11章 網路和Web編程 446
11.1 以客戶端的形式同HTTP服務交互 446
11.2 創建一個TCP伺服器 450
11.3 創建一個UDP伺服器 454
11.4 從CIDR地址中生成IP地址的範圍 456
11.5 創建基於REST風格的簡單介面 458
11.6 利用XML-RPC實現簡單的遠端過程調用 463
11.7 在不同的解釋器間進行通信 466
11.8 實現遠端過程調用 468
11.9 以簡單的方式驗證客戶端身份 472
11.10 為網路服務增加SSL支持 474
11.11 在進程間傳遞socket文件描述符 481
11.12 理解事件驅動型I/O 486
11.13 發送和接收大型數組 493
第12章 併發 496
12.1 啟動和停止線程 496
12.2 判斷線程是否已經啟動 499
12.3 線程間通信 503
12.4 對臨界區加鎖 508
12.5 避免死鎖 511
12.6 保存線程專有狀態 515
12.7 創建線程池 517
12.8 實現簡單的並行編程 521
12.9 如何規避GIL帶來的限制 525
12.10 定義一個Actor任務 528
12.11 實現發佈者/訂閱者消息模式 532
12.12 使用生成器作為線程的替代方案 536
12.13 輪詢多個線程隊列 544
12.14 在UNIX上載入守護進程 547
第13章 實用腳本和系統管理 552
13.1 通過重定向、管道或輸入文件來作為腳本的輸入 552
13.2 終止程式並顯示錯誤信息 553
13.3 解析命令行選項 554
13.4 在運行時提供密碼輸入提示 557
13.5 獲取終端大小 558
13.6 執行外部命令並獲取輸出 558
13.7 拷貝或移動文件和目錄 560
13.8 創建和解包歸檔文件 562
13.9 通過名稱來查找文件 563
13.10 讀取配置文件 565
13.11 給腳本添加日誌記錄 568
13.12 給庫添加日誌記錄 571
13.13 創建一個秒錶計時器 573
13.14 給記憶體和CPU使用量設定限制 575
13.15 載入Web瀏覽器 576
第14章 測試、調試以及異常 578
14.1 測試發送到stdout上的輸出 578
14.2 在單元測試中為對象打補丁 579
14.3 在單元測試中檢測異常情況 583
14.4 將測試結果作為日誌記錄到文件中 585
14.5 跳過測試,或者預計測試結果為失敗 586
14.6 處理多個異常 587
14.7 捕獲所有的異常 589
14.8 創建自定義的異常 591
14.9 通過引發異常來響應另一個異常 593
14.10 重新拋出上一個異常 595
14.11 發出告警信息 596
14.12 對基本的程式崩潰問題進行調試 598
14.13 對程式做性能分析以及計時統計 600
14.14 讓你的程式運行得更快 603
第15章 C語言擴展 610
15.1 利用ctypes來訪問C代碼 612
15.2 編寫簡單的C語言擴展模塊 618
15.3 編寫一個可操作數組的擴展函數 622
15.4 在C擴展模塊中管理不透明指針 625
15.5 在擴展模塊中定義並導出C API 628
15.6 從C中調用Python 633
15.7 在C擴展模塊中釋放GIL 639
15.8 混合使用C和Python環境中的線程 639
15.9 用Swig來包裝C代碼 640
15.10 用Cython來包裝C代碼 646
15.11 用Cython來高效操作數組 652
15.12 把函數指針轉換為可調用對象 657
15.13 把以NULL結尾的字元串傳給C庫 659
15.14 把Unicode字元串傳遞給C庫 663
15.15 把C字元串轉換到Python中 667
15.16 同編碼方式不確定的C字元串打交道 669
15.17 把文件名傳給C擴展模塊 672
15.18 把打開的文件傳給C擴展模塊 673
15.19 在C中讀取文件型對象 674
15.20 從C中訪問可迭代對象 677
15.21 排查段錯誤 678
附錄A 補充閱讀 680
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言 單例模式應該是我們最熟悉的模式了,如果說要隨便抓一個程式員,讓他說一說最熟悉的集中設計模式,我想肯定有單例模式。 我們這節就全面的來講解一下單例模式。 為什麼要用單例模式 單例模式理解起來非常簡單。在一個系統中,一個類只允許創建一個對象,那這個類就是單例類,這種設計模式就叫做單例設計模式。 為 ...
  • Strategy Pattern enables selecting an algorithm at runtime. In more detail, code receives run-time instructions as to which in a family of algorithms ...
  • 代理模式的目地是為對象提供一種代理以控制對這個對象的訪問。為什麼會出現“通過一個代理對象,控制其他對象訪問目標對象”這種場景,而不知直接new()出一個對象直接使用呢?這是因為在有些場景下對象的訪問比較複雜,且需要一些額外的控制,這時如果直接new()出實例,併在調用端處理這些繁雜的細節,會增加系統 ...
  • 簡介 在企業級開發中、我們經常會有編寫資料庫表結構文檔的時間付出,從業以來,待過幾家企業,關於資料庫表結構文檔狀態:要麼沒有、要麼有、但都是手寫、後期運維開發,需要手動進行維護到文檔中,很是繁瑣、如果忘記一次維護、就會給以後工作造成很多困擾、無形中製造了很多坑留給自己和後人,於是需要一個插件工具 s ...
  • K-Bag定義為K的多個任意全排列的組合(eg:1 2 3 2 3 1 1 2 3),給定一個長為n的數組,判斷是否為K-Bag的一部分。 題解: (1≤n≤5⋅105,1≤k≤109),k<=n時,用g[i]判斷前i個數是否不相等,h[i]判斷i~n是否不相等,f[i]判斷i~i+k是否不相等,b ...
  • 在一些小的應用中,難免會用到資料庫,Sqlite資料庫以其小巧輕便,無需安裝,移植性好著稱,本文主要以一個簡單的小例子,簡述Python在Sqlite資料庫方面的應用,僅供學習分享使用,如有不足之處,還請指正。 ...
  • Optional Optional 類是一個可以為null的容器對象。可以很好的解決空指針異常。 1 創建Optional對象 創建一個空的Optional對象 Optional<String> empty = Optional.empty(); 創建一個非空的Optional對象 Optional ...
  • Apache Kafka 架構和相關概念 Apache Kafka 是一款開源的分散式消息引擎系統 消息引擎的同類 ActiveMQ RabbitMQ WebSphere MQ Rocket MQ JMS僅僅是一組 API 協議 消息引擎的作用 削峰填谷 緩衝上下游瞬時突發流量,使其更平滑.特別是對 ...
一周排行
    -Advertisement-
    Play Games
  • 概述:在C#中,++i和i++都是自增運算符,其中++i先增加值再返回,而i++先返回值再增加。應用場景根據需求選擇,首碼適合先增後用,尾碼適合先用後增。詳細示例提供清晰的代碼演示這兩者的操作時機和實際應用。 在C#中,++i 和 i++ 都是自增運算符,但它們在操作上有細微的差異,主要體現在操作的 ...
  • 上次發佈了:Taurus.MVC 性能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本,今天計劃準備壓測一下 .NET 版本,來測試並記錄一下 Taurus.MVC 框架在 .NET 版本的性能,以便後續持續優化改進。 為了方便對比,本文章的電腦環境和測試思路,儘量和... ...
  • .NET WebAPI作為一種構建RESTful服務的強大工具,為開發者提供了便捷的方式來定義、處理HTTP請求並返迴響應。在設計API介面時,正確地接收和解析客戶端發送的數據至關重要。.NET WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用 ...
  • 原因:我之所以想做這個項目,是因為在之前查找關於C#/WPF相關資料時,我發現講解圖像濾鏡的資源非常稀缺。此外,我註意到許多現有的開源庫主要基於CPU進行圖像渲染。這種方式在處理大量圖像時,會導致CPU的渲染負擔過重。因此,我將在下文中介紹如何通過GPU渲染來有效實現圖像的各種濾鏡效果。 生成的效果 ...
  • 引言 上一章我們介紹了在xUnit單元測試中用xUnit.DependencyInject來使用依賴註入,上一章我們的Sample.Repository倉儲層有一個批量註入的介面沒有做單元測試,今天用這個示例來演示一下如何用Bogus創建模擬數據 ,和 EFCore 的種子數據生成 Bogus 的優 ...
  • 一、前言 在自己的項目中,涉及到實時心率曲線的繪製,項目上的曲線繪製,一般很難找到能直接用的第三方庫,而且有些還是定製化的功能,所以還是自己繪製比較方便。很多人一聽到自己畫就害怕,感覺很難,今天就分享一個完整的實時心率數據繪製心率曲線圖的例子;之前的博客也分享給DrawingVisual繪製曲線的方 ...
  • 如果你在自定義的 Main 方法中直接使用 App 類並啟動應用程式,但發現 App.xaml 中定義的資源沒有被正確載入,那麼問題可能在於如何正確配置 App.xaml 與你的 App 類的交互。 確保 App.xaml 文件中的 x:Class 屬性正確指向你的 App 類。這樣,當你創建 Ap ...
  • 一:背景 1. 講故事 上個月有個朋友在微信上找到我,說他們的軟體在客戶那邊隔幾天就要崩潰一次,一直都沒有找到原因,讓我幫忙看下怎麼回事,確實工控類的軟體環境複雜難搞,朋友手上有一個崩潰的dump,剛好丟給我來分析一下。 二:WinDbg分析 1. 程式為什麼會崩潰 windbg 有一個厲害之處在於 ...
  • 前言 .NET生態中有許多依賴註入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core預設使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信息。這在一般情況下並沒有影響,但是內置容器支持註冊開放泛型服 ...
  • 一、前言 在項目開發過程中,DataGrid是經常使用到的一個數據展示控制項,而通常表格的最後一列是作為操作列存在,比如會有編輯、刪除等功能按鈕。但WPF的原始DataGrid中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...