Python經典實例

[美]史蒂文·F.洛特

  • Python經典實例-preview-1
  • Python經典實例-preview-2
Python經典實例-preview-1

買這商品的人也買了...

商品描述

本書是Python經典實例解析,採用基於實例的方法編寫,每個實例都會解決具體的問題和難題。主要內容有:數字、字符串和元組,語句與語法,函數定義,列表、集、字典,用戶輸入和輸出等內置數據結構,類和對象,函數式和反應式編程,Web服務,等等。

作者簡介

史蒂文·F.洛特(Steven F. Lott),20世紀70年代開始編程生涯,作為軟件工程師和架構師,參與過的大小項目眾多。近十多年一直致力於用Python解決商業問題,對Python語言有深入體會和豐富經驗。目前專注於利用Python來實現微服務和ETL管道。
 

目錄大綱

第1章數字、字符串和元組1 
1.1引言1 
1.2創建有意義的名稱和使用變量2 
1.3使用大整數和小整數5 
1.4在浮點數、小數和分數之間選擇8 
1.5在真除法和floor除法之間選擇13 
1.6重寫不可變的字符串15 
1.7使用正則表達式解析字符串19 
1.8使用"template".format()構建複雜的字符串22 
1.9通過字符列表構建複雜的字符串25 
1.10使用鍵盤上沒有的Unicode字符27 
1.11編碼字符串——創建ASCII和UTF-8字節29 
1.12解碼字節——如何根據字節獲得正確的字符31 
1.13使用元組33 


第2章語句與語法36 
2.1引言36 
2.2編寫Python腳本和模塊文件——語法基礎37 
2.3編寫長行代碼40 
2.4添加描述和文檔44 
2.5在文檔字符串中編寫RST標記48 
2.6設計複雜的if…elif鏈51 
2.7設計正確終止的while語句54 
2.8避免break語句帶來的潛在問題58 
2.9利用異常匹配規則61 
2.10避免except:子句帶來的潛在問題64
2.11使用raise from語句鏈接異常65 
2.12使用with語句管理上下文67 


第3章函數定義70 
3.1引言70 
3.2使用可選參數設計函數70 
3.3使用靈活的關鍵字參數75 
3.4使用*分隔符強制使用關鍵字參數77 
3.5編寫顯式的函數參數類型80 
3.6基於偏函數選擇參數順序84 
3.7使用RST標記編寫清晰的文檔字符串87 
3.8圍繞Python棧限制設計遞歸函數91 
3.9根據腳本/庫轉換規則編寫可重用腳本94 


第4章內置數據結構——列表、集、字典98 
4.1引言98 
4.2選擇數據結構99 
4.3構建列表——字面量、append()和解析式102 
4.4切片和分割列表106 
4.5從列表中刪除元素— —del語句、remove()、pop()和filter() 109 
4.6反轉列表的副本114 
4.7使用set方法和運算符116 
4.8從集中移除元素——remove()、pop()和差集120 
4.9創建字典——插入和更新122 
4.10從字典中移除元素——pop()方法和del語句126 
4.11控製字典鍵的順序128 
4.12處 理doctest示例中的字典和集130
4.13理解變量、引用和賦值132 
4.14製作對象的淺副本和深副本134 
4.15避免可變默認值作為函數參數137 


第5章用戶輸入和輸出141 
5.1引言141 
5.2使用print()函數的功能141 
5.3使用input()和getpass()收集用戶輸入145 
5.4使用"format".format_map(vars())進行調試150 
5.5使用argparse模塊獲取命令行輸入151 
5.6使用cmd模塊創建命令行應用程序156 
5.7使用操作系統環境設置161 


第6章類和對象的基礎知識165 
6.1引言165 
6.2使用類封裝數據和操作166 
6.3設計操作類169 
6.4設計數據類174 
6.5使用__slots__優化對象177 
6.6使用更複雜的集合180 
6.7擴展集合——統計數據的列表183 
6.8使用特性計算惰性屬性186 
6.9使用可設置的特性更新及早屬性190 


第7章高級類設計195 
7.1引言195 
7.2在繼承和擴展之間選擇——is-a問題195 
7.3通過多重繼承分離關注點201 
7.4利用Python的鴨子類型205
7.5管理全局單例對象208 
7.6使用更複雜的結構——列表映射212 
7.7創建具有可排序對象的類214 
7.8定義有序集合218 
7.9從映射列表中刪除元素223 


第8章函數式編程和反應式編程228 
8.1引言228 
8.2使用yield語句編寫生成器函數229 
8.3使用生成器表達式棧234 
8.4將轉換應用於集合241 
8.5選擇子集——三種過濾方式244 
8.6匯總集合——如何歸約248 
8.7組合映射和歸約轉換252 
8.8實現there exists處理257 
8.9創建偏函數260 
8.10使用不可變數據結構簡化複雜算法265 
8.11使用yield from語句編寫遞歸生成器函數269 


第9章輸入/輸出、物理格式和邏輯佈局274 
9.1引言274 
9.2使用pathlib模塊處理文件名275 
9.3使用上下文管理器讀取和寫入文件281 
9.4替換文件,同時保留以前的版本284 
9.5使用CSV模塊讀取帶分隔符的文件287 
9.6使用正則表達式讀取複雜格式291 
9.7讀取JSON文檔295 
9.8讀取XML文檔301
9.9讀取HTML文檔305 
9.10將CSV模塊的DictReader更新為namedtuple讀取器310 
9.11將CSV模塊的DictReader更新為namespace讀取器314 
9.12使用多個上下文讀取和寫入文件317 


第10章統計編程和線性回歸322 
10.1引言322 
10.2使用內置統計庫322 
10.3計算Counter對像中值的平均值329 
10.4計算相關係數332 
10.5計算回歸參數336 
10.6計算自相關339 
10.7確認數據是隨機的——零假設344 
10.8查找異常值348 
10.9通過一次遍歷分析多個變量353 


第11章測試359 
11.1引言359 
11.2使用文檔字符串進行測試360 
11.3測試拋出異常的函數365 
11.4處理常見的doctest問題368 
11.5創建單獨的測試模塊和包372 
11.6組合unittest測試和doctest測試378 
11.7涉及日期或時間的測試381 
11.8涉及隨機性的測試385 
11.9模擬外部資源388 


第12章Web服務398 
12.1引言398
12.2使用WSGI實現Web服務400 
12.3使用Flask框架實現RESTful API 408 
12.4解析請求中的查詢字符串414 
12.5使用urllib發送REST請求418 
12.6解析URL路徑424 
12.7解析JSON請求433 
12.8實施Web服務認證441 


第13章應用程序集成455 
13.1引言455 
13.2查找配置文件456 
13.3使用YAML編寫配置文件462 
13.4使用Python賦值語句編寫配置文件468 
13.5使用Python類定義編寫配置文件470 
13.6設計可組合的腳本475 
13.7使用logging模塊監控和審計輸出481 
13.8將兩個應用程序組合為一個複合應用程序488 
13.9使用命令設計模式組合多個應用程序494 
13.10管理複合應用程序中的參數和配置497 
13.11包裝和組合CLI應用程序501 
13.12包裝程序並檢查輸出506 
13.13控制複雜的步驟序列509