産品特色
內容簡介
Python是一種腳本語言,在各個領域得到瞭日益廣泛的應用。《Python 3程序開發指南(第2版 修訂版)》全麵深入地對Python語言進行瞭講解。 《Python 3程序開發指南(第2版 修訂版)》首先講述瞭構成Python語言的8個關鍵要素,之後分章節對其進行瞭詳盡的闡述,包括數據類型、控製結構與函數、模塊、文件處理、調試、進程與綫程、網絡、數據庫、正則錶達式、GUI程序設計等各個方麵,並介紹瞭其他一些相關主題。全書內容以實例講解為主綫,每章後麵附有練習題,便於讀者更好地理解和掌握所講述的內容。 《Python 3程序開發指南(第2版 修訂版)》適閤於作為Python語言教科書使用,對Python程序設計人員也有一定的參考價值。
作者簡介
Mark Summerfield,Qtrac公司的所有人,同時還是一位在Python、C++、Qt以及PyQt等領域卓有專長的獨立培訓專傢、顧問、技術編輯與作者。Mark Summerfield撰寫的書籍包括《Rapid GUI Programmlng with Python》以及《Qt:The Definitive Guide tO PyQt Programming》 (Addison-Wesley,2008),並與Jasmin Blanchette共同編寫瞭《C++ GUI Programming with Qt 4》(Addison-Wesley,2006)。作為Trolltech的文檔管理者,Mark創立瞭並負責編輯Trolltech的技術雜誌《Qt Quarterly》。
目錄
第1章 過程型程序設計快速入門 11.1 創建並運行Python程序 11.2 Python的關鍵要素 51.2.1 要素#1:數據類型 61.2.2 要素#2:對象引用 71.2.3 要素#3:組閤數據類型 91.2.4 元素#4:邏輯操作符 121.2.5 要素#5:控製流語句 161.2.6 要素#6:算術操作符 201.2.7 要素#7:輸入/輸齣 231.2.8 要素#8:函數的創建與調用 251.3 實例 271.3.1 bigdigits.py 281.3.2 generate_grid.py 301.4 總結 331.5 練習 35
第2章 數據類型 382.1 標識符與關鍵字 382.2 Integral類型 412.2.1 整數 412.2.2 布爾型 442.3 浮點類型 442.3.1 浮點數 452.3.2 復數 482.3.3 十進製數字 492.4 字符串 502.4.1 比較字符串 532.4.2 字符串分片與步距 542.4.3 字符串操作符與方法 562.4.4 使用str.format()方法進行字符串格式化 622.4.5 字符編碼 732.5 實例 752.5.1 quadratic.py 752.5.2 csv2html.py 782.6 總結 822.7 練習 84
第3章 組閤數據類型 863.1 序列類型 863.1.1 元組 873.1.2 命名的元組 893.1.3 列錶 913.1.4 列錶內涵 963.2 集閤類型 983.2.1 集閤 983.2.2 集閤內涵 1023.2.3 固定集閤 1023.3 映射類型 1033.3.1 字典 1033.3.2 字典內涵 1103.3.3 默認字典 1113.4 組閤數據類型的迭代與復製 1133.4.1 迭代子、迭代操作與函數 1133.4.2 組閤類型的復製 1213.5 實例 1233.5.1 generate_usernames.py 1233.5.2 statistics.py 1263.6 總結 1303.7 練習 131
第4章 控製結構與函數 1334.1 控製結構 1334.1.1 條件分支 1334.1.2 循環 1354.2 異常處理 1364.2.1 捕獲與産生異常 1364.2.2 自定義異常 1414.3 自定義函數 1444.3.1 名稱與Docstrings 1484.3.2 參數與參數拆分 1494.3.3 存取全局範圍的變量 1524.3.4 Lambda函數 1534.3.5 斷言 1554.4 實例:make_html_skeleton.py 1564.5 總結 1624.6 練習 162
第5章 模塊 1655.1 模塊與包 1655.1.1 包 1695.1.2 自定義模塊 1715.2 Python標準庫概覽 1815.2.1 字符串處理 1815.2.2 io.StringIO類 1825.2.3 命令行程序設計 1835.2.4 數學與數字 1845.2.5 時間與日期 1845.2.6 實例:calendar、datetime與time模塊 1855.2.7 算法與組閤數據類型 1855.2.8 文件格式、編碼與數據持久性 1875.2.9 文件、目錄與進程處理 1905.2.10 網絡與Internet程序設計 1925.2.11 XML 1935.2.12 其他模塊 1955.3 總結 1965.4 練習 198
第6章 麵嚮對象程序設計 2006.1 麵嚮對象方法 2006.2 自定義類 2046.2.1 屬性與方法 2056.2.2 繼承與多態 2096.2.3 使用特性進行屬性存取控製 2116.2.4 創建完全整閤的數據類型 2136.3 自定義組閤類 2256.3.1 創建聚集組閤數據的類 2256.3.2 使用聚集創建組閤類 2316.3.3 使用繼承創建組閤類 2376.4 總結 2446.5 練習 245
第7章文件處理 2477.1 二進製數據的讀寫 2517.1.1 帶可選壓縮的Pickle 2527.1.2 帶可選壓縮的原始二進製數據 2567.2 文本文件的寫入與分析 2637.2.1 寫入文本 2637.2.2 分析文本 2657.2.3 使用正則錶達式分析文本 2687.3 寫入與分析XML文件 2707.3.1 元素樹 2707.3.2 DOM 2747.3.3 手動寫入XML 2777.3.4 使用SAX分析XML 2787.4 隨機存取二進製文件 2817.4.1 通用的BinaryRecordFile類 2817.4.2 實例:BikeStock模塊的類 2897.5 總結 2927.6 練習 293
第8章 高級程序設計技術 2958.1 過程型程序設計進階 2968.1.1 使用字典進行分支 2968.1.2 生成器錶達式與函數 2978.1.3 動態代碼執行與動態導入 3008.1.4 局部函數與遞歸函數 3068.1.5 函數與方法修飾器 3118.1.6 函數注釋 3148.2 麵嚮對象程序設計進階 3178.2.1 控製屬性存取 3178.2.2 函子 3208.2.3 上下文管理器 3228.2.4 描述符 3258.2.5 類修飾器 3308.2.6 抽象基類 3338.2.7 多繼承 3408.2.8 元類 3428.3 函數型程序設計 3468.3.1 偏函數 3488.3.2 協程 3498.4 實例:Valid.py 3568.5 總結 3598.6 練習 360
第9章 調試、測試與Profiling 3619.1 調試 3619.1.1 處理語法錯誤 3629.1.2 處理運行時錯誤 3639.1.3 科學的調試 3679.2 單元測試 3719.3 Profiling 3779.4 小結 382
第10章 進程與綫程 38310.1 使用多進程模塊 38410.2 將工作分布到多個綫程 38810.2.1 實例:綫程化的單詞尋找程序 38910.2.2 實例:一個綫程化的重復文件發現程序 39210.3 總結 39610.4 練習 397
第11章 網絡 39911.1 創建TCP客戶端 40011.2 創建TCP服務器 40611.3 總結 41211.4 練習 412
第12章 數據庫程序設計 41412.1 DBM數據庫 41412.2 SQL數據庫 41812.3 總結 42512.4 練習 425
第13章 正則錶達式 42713.1 Python的正則錶達式語言 42813.1.1 字符與字符類 42813.1.2 量詞 42913.1.3 組與捕獲 43113.1.4 斷言與標記 43313.2 正則錶達式模塊 43613.3 總結 44413.4 練習 445
第14章 分析簡介 44614.1 BNF語法與分析的術語 44714.2 手動編寫分析器 45114.2.1 簡單的鍵-值數據分析 45114.2.2 播放列錶數據分析 45414.2.3 Blocks域特定語言的分析 45614.3 使用PyParsing進行更Python化的分析 46414.3.1 PyParsing快速介紹 46514.3.2 簡單的鍵-值數據分析 46814.3.3 播放列錶數據分析 47014.3.4 分析塊域特定語言 47114.3.5 分析一階邏輯 47614.4 使用PLY進行Lex/Yacc風格的分析 48114.4.1 簡單的鍵-值數據分析 48314.4.2 播放列錶數據分析 48514.4.3 分析塊域特定語言 48714.4.4 分析一階邏輯 48914.5 小結 49314.6 練習 494
第15章 GUI程序設計介紹 49615.1 對話框風格的程序 49915.2 主窗口風格的程序 50415.2.1 創建一個主窗口 50415.2.2 創建自定義對話框 51415.3 總結 51715.4 練習 518
前言/序言
Python 3 程序開發指南(第2版 修訂版) 簡介 Python 3 的蓬勃發展,標誌著編程語言領域一次重要的演進,而《Python 3 程序開發指南(第2版 修訂版)》正是一本緻力於引領讀者深入理解並精通這一強大工具的權威著作。本書並非對 Python 2 語言的簡單升級,而是基於 Python 3 的核心設計理念,從基礎概念到高級特性,再到實際應用,層層遞進,為讀者構建一個紮實且全麵的 Python 3 編程知識體係。 本書的編排匠心獨運,旨在滿足不同層次讀者的需求。對於初次接觸 Python 的新手而言,它提供瞭清晰易懂的入門指導,從環境搭建、基本語法,到數據類型、控製流,每一個概念都輔以生動的示例和詳盡的解釋,幫助讀者快速掌握編程的基本邏輯。對於已經具備一定編程經驗,但希望轉嚮 Python 3 或深化理解的開發者而言,本書則能夠提供更深入的視角,揭示 Python 3 的獨特之處,例如改進的字符串處理、更強大的迭代器機製、以及對異步編程的全新支持。 《Python 3 程序開發指南(第2版 修訂版)》在內容上力求詳實與精煉並存。它深入探討瞭 Python 3 的核心數據結構,如列錶、元組、字典和集閤,並闡述瞭它們在不同場景下的最佳使用方式。函數作為 Python 的基石,本書對其的講解覆蓋瞭從基礎定義到高級技巧,包括參數傳遞、作用域、閉包、裝飾器以及 lambda 錶達式等,幫助讀者寫齣更具模塊化和可重用性的代碼。 麵嚮對象編程(OOP)是現代軟件開發不可或缺的一部分,本書對此進行瞭充分的介紹。讀者將學習如何定義類、創建對象,理解封裝、繼承和多態等核心概念,並瞭解 Python 中特有的魔術方法(dunder methods)如何增強類的功能。通過大量的實例,讀者將能夠運用麵嚮對象的設計思想來構建更復雜、更易於維護的應用程序。 本書的另一大亮點在於其對 Python 3 標準庫的廣泛覆蓋。標準庫是 Python 強大之處的重要體現,本書精選瞭眾多常用且重要的模塊,例如用於文件I/O操作的 `os` 和 `io` 模塊,處理日期和時間的 `datetime` 模塊,進行網絡通信的 `socket` 和 `urllib` 模塊,以及用於數據序列化的 `json` 和 `pickle` 模塊等等。通過這些模塊的學習,讀者能夠快速有效地解決各種實際編程問題,而無需依賴第三方庫。 隨著 Python 3 在數據科學、機器學習、Web 開發等領域的廣泛應用,本書也著重介紹瞭與這些領域相關的概念和工具。雖然本書本身不直接提供特定領域的應用教程,但它奠定瞭堅實的基礎,使讀者能夠更容易地學習和掌握如 NumPy、Pandas、Scikit-learn、Django、Flask 等流行的第三方庫。例如,在數據結構的學習中,將為理解 Pandas DataFrames 和 Series 打下基礎;在函數和麵嚮對象編程的講解中,將為理解機器學習模型的設計和實現提供支持。 《Python 3 程序開發指南(第2版 修訂版)》不僅關注語言本身的語法和特性,更強調編寫高質量、高效率 Python 代碼的實踐方法。本書貫穿始終的編程風格指南,鼓勵讀者遵循 PEP 8 規範,編寫清晰、可讀性強的代碼。此外,書中還涉及瞭錯誤處理和異常機製,幫助讀者學會如何優雅地處理程序運行中可能齣現的各種問題,提高程序的健壯性。 在實際開發過程中,性能優化是一個不可忽視的方麵。本書在講解過程中,會不時地提示一些關於性能考量的建議,例如如何選擇閤適的數據結構,如何避免不必要的計算,以及如何利用 Python 的內置函數和高效的算法。這些寶貴的經驗將幫助讀者寫齣更優化的 Python 程序。 迭代器和生成器是 Python 中用於高效處理大量數據和實現惰性計算的重要概念。本書對這些概念進行瞭深入的講解,幫助讀者理解它們的工作原理,並學會如何利用它們來編寫更簡潔、更內存友好的代碼,尤其是在處理大型數據集或無限序列時,其優勢尤為突齣。 此外,對於需要處理並發和並行任務的開發者,本書會介紹 Python 3 在這方麵的支持,例如綫程(threading)和多進程(multiprocessing)模塊,以及對協程(coroutine)和異步編程(asyncio)的初步介紹。雖然異步編程本身是一個復雜的領域,本書旨在為讀者打下理解其基礎和基本工作方式的準備,使其能夠進一步深入學習。 本書的修訂版尤其關注瞭 Python 3 語言的最新發展和最佳實踐。在保持核心內容不變的同時,對部分章節進行瞭更新和完善,以反映 Python 3 語言在不斷發展中的新特性和推薦用法。例如,對 f-string 的介紹,對 `async/await` 語法的更新,以及對一些庫的最佳實踐的調整。 總而言之,《Python 3 程序開發指南(第2版 修訂版)》是一本集理論深度、實踐廣度與前沿性於一體的 Python 3 編程學習寶典。它不僅是一本技術手冊,更是一位經驗豐富的嚮導,帶領讀者穿越 Python 3 的廣闊天地,掌握編寫高效、健壯、優雅程序的藝術。無論您是剛踏入編程殿堂的學生,還是希望提升自身技能的資深開發者,本書都將是您不可或缺的學習伴侶。通過本書的學習,您將能夠自信地運用 Python 3 來解決現實世界中的各種挑戰,開啓您的無限編程可能。