內容簡介
本書描述了Python程式的基本構件:類型、操作符、語句、函式、模組、類以及異常,介紹了更多高級主題,包括複雜的實例。
本書適合Python初學者,以及已經入門但想繼續學習和提高自身Python技巧的程式設計師。
Python是一種功能十分強大的面向對象程式語言,可以用於編寫獨立程式、快速腳本和複雜套用的原型。作為一種開源軟體,Python可以自由獲取,而且非常易學易用。本書是Python語言的經典入門讀本,由兩名頂尖的Python技術專家兼培訓專家聯手撰寫,涵蓋了該語言的所有核心內容。所有練習的解答都可在書後找到。 本書描述了Python程式的基本構件:類型、操作符、語句、函式、模組、類以及異常和介紹了更多高級主題,包括複雜的實例。無論是用於編寫簡單的腳本,還是複雜的科學計算、Web、資料庫、圖形和動畫程式,Python都證明它的強大。
本書是經典的Python 指導書,在第一版的基礎上進行了全面升級。全書分為兩個部分:第1部分占據了大約三分之二的篇幅,闡釋這門語言的“核心”內容,包括基本的概念和語句、語法和風格、Python對象、數字類型、序列類型、映射和集合類型、條件和循環、檔案和輸入/輸出、錯誤和異常、函式和函式式編程、模組、面向對象編程、執行環境等內容:第2部分則提供了各種高級主題來展示可以使用Python做些什麼,包括正則表達式、網路編程、網路客戶端編程、多執行緒編程、圖形用戶界面編程、Web編程、資料庫編程、擴展Python 和一些其他材料。
圖書目錄
第1部分 Python核心
第1章 歡迎來到Python世界
第2章 快速入門
第3章 Python基礎
第4章 Python對象
第5章 數字
第6章 序列:字元串、列表和元組
第7章 映像和集合類型
第8章 條件和循環
第9章 檔案和輸入輸出
第10章 錯誤和異常
第11章 函式和函式式編程
第12章 模組
第13章 面向對象編程
第14章 執行環境
第2部分 高級主題
第15章 正則表達式
15.1 引言/動機
15.2 正則表達式使用的特殊符號和字元
15.2.1 用管道符號(|)匹配多個正則表達式模式
15.2.2 匹配任意一個單個的字元(.)
15.2.3 從字元串的開頭或結尾或單詞邊界開始匹配(^/$ /\b /\B )
15.2.4 創建字元類([])
15.2.5 指定範圍(-)和否定(^)
15.2.6 使用閉包操作符(*,+,?,{})實現多次出現/重複匹配
15.2.7 特殊字元表示、字元集
15.2.8 用圓括弧(())組建組
15.3 正則表達式和Python語言
15.3.1 re模組:核心函式和方法
15.3.2 使用compile()編譯正則表達式
15.3.3 匹配對象和group()、groups()方法
15.3.4 用match()匹配字元串
15.3.5 search()在一個字元串中查找一個模式(搜尋與匹配的比較)
15.3.6 匹配多個字元串(|)
15.3.7 匹配任意單個字元(.)
15.3.8 創建字元集合([])
15.3.9 重複、特殊字元和子組
15.3.10 從字元串的開頭或結尾匹配及在單詞邊界上的匹配
15.3.11 用findall()找到每個出現的匹配部分
15.3.12 用sub()(和subn())進行搜尋和替換
15.3.13 用split()分割(分隔模式)
15.4 正則表達式示例
15.4.1 匹配一個字元串
15.4.2 搜尋與匹配的比較,“貪婪”匹配
15.5 練習
第16章 網路編程
16.1 引言
16.1.1 什麼是客戶端/伺服器架構
16.1.2 客戶端/伺服器網路編程
16.2 套接字:通信端點
16.2.1 什麼是套接字
16.2.2 套接字地址:主機與連線埠
16.2.3 面向連線與無連線
16.3 Python中的網路編程
16.3.1 socket()模組函式
16.3.2 套接字對象(內建)方法
16.3.3 創建一個TCP伺服器
16.3.4 創建TCP客戶端
16.3.5 運行我們的客戶端與TCP伺服器
16.3.6 創建一個UDP伺服器
16.3.7 創建一個UDP客戶端
16.3.8 執行UDP伺服器和客戶端
16.3.9 Socket模組屬性
16.4 *SocketServer模組
16.4.1 創建一個SocketServerTCP伺服器
16.4.2 創建SocketServerTCP客戶端
16.4.3 執行TCP伺服器和客戶端
16.5 Twisted框架介紹
16.5.1 創建一個Twisted Reactor TCP伺服器
16.5.2 創建一個Twisted Reactor TCP客戶端
16.5.3 執行TCP伺服器和客戶端
16.6 相關模組
16.7 練習
第17章 網路客戶端編程
17.1 什麼是網際網路客戶端
17.2 檔案傳輸
17.2.1 檔案傳輸網際協定
17.2.2 檔案傳輸協定(FTP)
17.2.3 Python和FTP
17.2.4 ftplib.FTP類方法
17.2.5 互動式FTP示例
17.2.6 客戶端FTP程式舉例
17.2.7 FTP的其他方面
17.3 網路新聞
17.3.1 Usenet與新聞組
17.3.2 網路新聞傳輸協定(NNTP)
17.3.3 Python和NNTP
17.3.4 nntplib.NNTP類方法
17.3.5 互動式NNTP舉例
17.3.6 客戶端程式NNTP舉例
17.3.7 NNTP的其他方面
17.4 電子郵件
17.4.1 電子郵件系統組件和協定
17.4.2 傳送電子郵件
17.4.3 Python和SMTP
17.4.4 smtplib.SMTP類方法
17.4.5 互動式SMTP示例
17.4.6 SMTP的其他方面
17.4.7 接收電子郵件
17.4.8 POP和IMAP
17.4.9 Python和POP3
17.4.10 互動式POP3舉例
17.4.11 poplib.POP3類方法
17.4.12 客戶端程式SMTP和POP3舉例
17.5 相關模組
17.5.1 電子郵件
17.5.2 其他網路協定
17.6 練習
第18章 多執行緒編程
18.1 引言/動機
18.2 執行緒和進程
18.2.1 什麼是進程
18.2.2 什麼是執行緒
18.3 Python、執行緒和全局解釋器鎖
18.3.1 全局解釋器鎖(GIL)
18.3.2 退出執行緒
18.3.3 在Python中使用執行緒
18.3.4 沒有執行緒支持的情況
18.3.5 Python的threading模組
18.4 thread模組
18.5 threading模組
18.5.1 Thread類
18.5.2 斐波那契、階乘和累加和
18.5.3 threading模組中的其他函式
18.5.4 生產者-消費者問題和Queue模組
18.6 相關模組
18.7 練習
第19章 圖形用戶界面編程
19.1 簡介
19.1.1 什麼是Tcl、Tk和Tkinter
19.1.2 安裝和使用Tkinter 533
19.1.3 客戶端/伺服器架構 534
19.2 Tkinter與Python編程 534
19.2.1 Tkinter模組:把Tk引入你的程式
19.2.2 GUI程式開發簡介
19.2.3 頂層視窗:
19.2.4 Tk組件
19.3 Tkinter舉例
19.3.1 標籤組件
19.3.2 按鈕組件
19.3.3 標籤和按鈕組件
19.3.4 標籤、按鈕和進度條組件
19.3.5 偏函式套用舉例
19.3.6 中級Tkinter範例
19.4 其他GUI簡介
19.4.1 Tk Interface eXtensions (Tix)
19.4.2 Python MegaWidgets (PMW)
19.4.3 wxWidgets和wxPython
19.4.4 GTK+和PyGTK
19.5 相關模組和其他GUI
19.6 練習
第20章 Web編程
20.1 介紹
20.1.1 Web套用:客戶端/伺服器計算
20.1.2 網際網路
20.2 使用Python進行Web套用:創建一個簡單的Web客戶端
20.2.1 統一資源定位符
20.2.2 urlparse模組
20.2.3 urllib模組
20.2.4 urllib2模組
20.3 高級Web客戶端
20.4 CGI:幫助Web伺服器處理客戶端數據
20.4.1 CGI介紹
20.4.2 CGI應用程式
20.4.3 cgi模組
20.5 建立CGI應用程式
20.5.1 建立Web伺服器
20.5.2 建立表單頁
20.5.3 生成結果頁
20.5.4 生成表單和結果頁面
20.5.5 全面互動的Web站點
20.6 在CGI中使用Unicode編碼
20.7 高級CGI
20.7.1 Mulitipart表單提交和檔案的上傳
20.7.2 多值欄位
20.7.3 cookie
20.7.4 使用高級CGI
20.8 Web(HTTP)伺服器
20.9 相關模組
20.10 練習
第21章 資料庫編程
21.1 介紹
21.1.1 持久存儲
21.1.2 基本的資料庫操作和SQL語言
21.1.3 資料庫和Python
21.2 Python資料庫應用程式程式設計師接口(DB-API)
21.2.1 模組屬性
21.2.2 連線對象
21.2.3 游標對象
21.2.4 類型對象和構造器
21.2.5 關係資料庫
21.2.6 資料庫和Python:接口程式
21.2.7 使用資料庫接口程式舉例
21.3 對象-關係管理器(ORM)
21.3.1 考慮對象,而不是SQL
21.3.2 Python和ORM
21.3.3 雇員資料庫舉例
21.3.4 總結
21.4 相關模組
21.5 練習
第22章 擴展Python 623
22.1 引言/動機
22.1.1 什麼是擴展
22.1.2 為什麼要擴展Python
22.2 創建Python擴展
22.2.1 創建您的應用程式代碼
22.2.2 用樣板來包裝你的代碼
22.2.3 編譯
22.2.4 導入和測試
22.2.5 引用計數
22.2.6 執行緒和全局解釋器鎖(GIL)
22.3 相關話題
22.4 練習
第23章 其他話題
23.1 Web服務
23.2 用Win32的COM來操作微軟Office
23.2.1 客戶端COM編程
23.2.2 微軟Excel
23.2.3 微軟Word 第1部分 Python核心
23.2.4 微軟PowerPoint
23.2.5 微軟Outlook
23.2.6 中等規模的例子
23.3 用Jython寫Python和Java的程式
23.3.1 什麼是Jython
23.4 練習
23.2.4 微軟PowerPoint
23.2.5 微軟Outlook
23.2.6 中等規模的例子
23.3 用Jython寫Python和Java的程式
23.3.1 什麼是Jython
23.3.2 Swing GUI開發(Java或者Python!)
23.4 練習