第1部分 Python核心
第1章 歡迎來到Python世界
1.1 什麼是Python
1.2 起源
1.3 特點
1.3.1 高級
1.3.2 麵嚮對象
1.3.3 可升級
1.3.4 可擴展
1.3.5 可移植性
1.3.6 易學
1.3.7 易讀
1.3.8 易維護
1.3.9 健壯性
1.3.10 高效的快速原型開發工具
1.3.11 內存管理器
1.3.12 解釋性和(字節)編譯性
1.4 下載和安裝Python
1.5 運行Python
1.5.1 命令行上的交互式解釋器
1.5.2 從命令行啓動腳本
1.5.3 集成開發環境
1.5.4 其他的集成開發環境和執行環境
1.6 Python文檔
1.7 比較Python(Python與其他語言的比較)
1.8 其他實現
1.9 練習
第2章 快速入門
2.1 程序輸齣,print語句及“Hello World!”
2.2 程序輸入和raw_input()內建函數
2.3 注釋
2.4 操作符
2.5 變量和賦值
2.6 數字
2.7 字符串
2.8 列錶和元組
2.9 字典
2.10 代碼塊及縮進對齊
2.11 if語句
2.12 while循環
2.13 for循環和range()內建函數
2.14 列錶解析
2.15 文件和內建函數open()、file()
2.16 錯誤和異常
2.17 函數
2.17.1 如何定義函數
2.17.2 如何調用函數
2.17.3 默認參數
2.18 類
2.19 模塊
2.19.1 如何導入模塊
2.19.2 如何訪問一個模塊函數或訪問一個模塊變量
2.20 實用的函數
2.21 練習
第3章 Python基礎
3.1 語句和語法
3.1.1 注釋(#)
3.1.2 繼續()
3.1.3 多個語句構成代碼組(:)
3.1.4 代碼組由不同的縮進分隔
3.1.5 同一行書寫多個語句(;)
3.1.6 模塊
3.2 變量賦值
3.2.1 賦值操作符
3.2.2 增量賦值
3.2.3 多重賦值
3.2.4 “多元”賦值
3.3 標識符
3.3.1 閤法的Python標識符
3.3.2 關鍵字
3.3.3 內建
3.3.4 專用下劃綫標識符
3.4 基本風格指南
3.4.1 模塊結構和布局
3.4.2 在主程序中書寫測試代碼
3.5 內存管理
3.5.1 變量定義
3.5.2 動態類型
3.5.3 內存分配
3.5.4 引用計數
3.5.5 垃圾收集
3.6 第一個Python程序
3.7 相關模塊和開發工具
3.8 練習
第4章 Python對象
4.1 Python 對象
4.2 標準類型
4.3 其他內建類型
4.3.1 類型對象和type類型對象
4.3.2 None--Python的Null對象
4.4 內部類型
4.4.1 代碼對象
4.4.2 幀對象
4.4.3 跟蹤記錄對象
4.4.4 切片對象
4.4.5 省略對象
4.4.6 XRange 對象
4.5 標準類型操作符
4.5.1 對象值的比較
4.5.2 對象身份比較
4.5.3 布爾類型
4.6 標準類型內建函數
4.6.1 type()
4.6.2 cmp()
4.6.3 str()和repr()(及``操作符)
4.6.4 type()和isinstance()
4.6.5 Python類型操作符和內建函數總結
4.7 類型工廠函數
4.8 標準類型的分類
4.8.1 存儲模型
4.8.2 更新模型
4.8.3 訪問模型
4.9 不支持的類型
4.10 練習
第5章 數字
5.1 數字簡介
5.1.1 如何創建數值對象並用其賦值(數字對象)
5.1.2 如何更新數字對象
5.1.3 如何刪除數字對象
5.2 整型
5.2.1 布爾型
5.2.2 標準整型
5.2.3 長整型
5.2.4 整型和長整型的統一
5.3 雙精度浮點型
5.4 復數
5.5 操作符
5.5.1 混閤模式操作符
5.5.2 標準類型操作符
5.5.3 算術操作符
5.5.4 *位操作符(隻適用於整型)
5.6 內建函數與工廠函數
5.6.1 標準類型函數
5.6.2 數字類型函數
5.6.3 僅用於整型的函數
5.7 其他數字類型
5.7.1 布爾“數”
5.7.2 十進製浮點型
5.8 相關模塊
5.9 練習
第6章 序列:字符串、列錶和元組
6.1 序列
6.1.1 標準類型操作符
6.1.2 序列類型操作符
6.1.3 內建函數(BIF)
6.2 字符串
6.3 字符串和操作符
6.3.1 標準類型操作符
6.3.2 序列操作符切片([]和[:])
6.4 隻適用於字符串的操作符
6.4.1 格式化操作符(%)
6.4.2 字符串模闆: 更簡單的替代品
6.4.3 原始字符串操作符(r/R)
6.4.4 Unicode字符串操作符(u/U)
6.5 內建函數
6.5.1 標準類型函數
6.5.2 序列類型函數
6.5.3 字符串類型函數
6.6 字符串內建函數
6.7 字符串的獨特特性
6.7.1 特殊字符串和控製字符
6.7.2 三引號
6.7.3 字符串不變性
6.8 Unicode
6.8.1 術語
6.8.2 什麼是Unicode
6.8.3 怎樣使用Unicode
6.8.4 Codec是什麼
6.8.5 編碼解碼
6.8.6 把Unicode應用到實際應用中
6.8.7 從現實中得來的教訓
6.8.8 Python的Unicode支持
6.9 相關模塊
6.10 字符串關鍵點總結
6.11 列錶
6.12 操作符
6.12.1 標準類型操作符
6.12.2 序列類型操作符
6.12.3 列錶類型操作符和列錶解析
6.13 內建函數
6.13.1 標準類型函數
6.13.2 序列類型函數
6.13.3 列錶類型內建函數
6.14 列錶類型的內建函數
6.15 列錶的特殊特性
6.16 元組
6.17 元組操作符和內建函數
6.17.1 標準類型操作符、序列類型操作符和內建函數
6.17.2 元組類型操作符和內建函數、內建方法
6.18 元組的特殊特性
6.18.1 不可變性給元組帶來瞭什麼影響
6.18.2 元組也不是那麼“不可變”
6.18.3 默認集閤類型
6.18.4 單元素元組
6.18.5 字典的關鍵字
6.19 相關模塊
6.20 *拷貝Python對象、淺拷貝和深拷貝
6.21 序列類型小結
6.22 練習
第7章 映像和集閤類型
7.1 映射類型:字典
7.1.1 如何創建字典和給字典賦值
7.1.2 如何訪問字典中的值
7.1.3 如何更新字典
7.1.4 如何刪除字典元素和字典
7.2 映射類型操作符
7.2.1 標準類型操作符
7.2.2 映射類型操作符
7.3 映射類型的內建函數和工廠函數
7.3.1 標準類型函數[type()、str()和cmp()]
7.3.2 映射類型相關的函數
7.4 映射類型內建方法
7.5 字典的鍵
7.5.1 不允許一個鍵對應多個值
7.5.2 鍵必須是可哈希的
7.6 集閤類型
7.6.1 如何創建集閤類型和給集閤賦值
7.6.2 如何訪問集閤中的值
7.6.3 如何更新集閤
7.6.4 如何刪除集閤中的成員和集閤
7.7 集閤類型操作符
7.7.1 標準類型操作符(所有的集閤類型)
7.7.2 集閤類型操作符(所有的集閤類型)
7.7.3 集閤類型操作符(僅適用於可變集閤)
7.8 內建函數
7.8.1 標準類型函數
7.8.2 集閤類型工廠函數
7.9 集閤類型內建方法
7.9.1 方法(所有的集閤方法)
7.9.2 方法(僅適用於可變集閤)
7.9.3 操作符和內建方法比較
7.10 集閤類型總結錶
7.11 相關模塊
7.12 練習
第8章 條件和循環
8.1 if語句
8.1.1 多重條件錶達式
8.1.2 單一語句的代碼塊
8.2 else語句
8.3 elif(即else-if)語句
8.4 條件錶達式(即“三元操作符”)
8.5 while語句
8.5.1 一般語法
8.5.2 計數循環
8.5.3 無限循環
8.6 for語句
8.6.1 一般語法
8.6.2 用於序列類型
8.6.3 用於迭代器類型
8.6.4 range()內建函數
8.6.5 xrange() 內建函數
8.6.6 與序列相關的內建函數
8.7 break語句
8.8 continue語句
8.9 pass語句
8.10 再談else語句
8.11 迭代器和iter()函數
8.11.1 什麼是迭代器
8.11.2 為什麼要迭代器
8.11.3 如何迭代
8.11.4 使用迭代器
8.11.5 可變對象和迭代器
8.11.6 如何創建迭代器
8.12 列錶解析
8.13 生成器錶達式
8.14 相關模塊
8.15 練習
第9章 文件和輸入輸齣
9.1 文件對象
9.2 文件內建函數(open()和file())
9.2.1 工廠函數file()
9.2.2 通用換行符支持(UNS)
9.3 文件內建方法
9.3.1 輸入
9.3.2 輸齣
9.3.3 文件內移動
9.3.4 文件迭代
9.3.5 其他
9.3.6 文件方法雜項
9.4 文件內建屬性
9.5 標準文件
9.6 命令行參數
9.7 文件係統
9.8 文件執行
9.9 永久存儲模塊
9.9.1 pickle和marshal模塊
9.9.2 DBM風格的模塊
9.9.3 shelve模塊
9.10 相關模塊
9.11 練習
第10章 錯誤和異常
10.1 什麼是異常
10.1.1 錯誤
10.1.2 異常
10.2 Python 中的異常
10.3 檢測和處理異常
10.3.1 try-except語句
10.3.2 包裝內建函數
10.3.3 帶有多個except的try語句
10.3.4 處理多個異常的except語句
10.3.5 捕獲所有異常
10.3.6 “異常參數”
10.3.7 在應用使用我們封裝的函數
10.3.8 else子句
10.3.9 finally子句
10.3.10 try-finally語句
10.3.11 try-except-else-finally:廚房一鍋端
10.4 上下文管理
10.4.1 with語句
10.4.2 *上下文管理協議
10.5 *字符串作為異常
10.6 觸發異常
10.7 斷言
10.8 標準異常
10.9 *創建異常
10.10 (現在)為什麼用異常
10.11 到底為什麼要異常
10.12 異常和sys模塊
10.13 相關模塊
10.14 練習
第11章 函數和函數式編程
11.1 什麼是函數?
11.1.1 函數vs過程
11.1.2 返迴值與函數類型
11.2 調用函數
11.2.1 函數操作符
11.2.2 關鍵字參數
11.2.3 默認參數
11.2.4 參數組
11.3 創建函數
11.3.1 def語句
11.3.2 聲明與定義比較
11.3.3 前嚮引用
11.3.4 函數屬性
11.3.5 內部/內嵌函數
11.3.6 *函數(與方法)裝飾器
11.4 傳遞函數
11.5 Formal Arguments
11.5.1 位置參數
11.5.2 默認參數
11.6 可變長度的參數
11.6.1 非關鍵字可變長參數(元組)
11.6.2 關鍵字變量參數(字典)
11.6.3 調用帶有可變長參數對象函數
11.7 函數式編程
11.7.1 匿名函數與lambda
11.7.2 內建函數apply()、filter()、map()、reduce()
11.7.3 偏函數應用
11.8 變量作用域
11.8.1 全局變量與局部變量
11.8.2 globa語句
11.8.3 作用域的數字
11.8.4 閉包
11.8.5 作用域和lambda
11.8.6 變量作用域和名稱空間
11.9 *遞歸
11.10 生成器
11.10.1 簡單的生成器特性
11.10.2 加強的生成器特性
11.11 練習
第12章 模塊
12.1 什麼是模塊
12.2 模塊和文件
12.2.1 模塊名稱空間
12.2.2 搜索路徑和路徑搜索
12.3 名稱空間
12.3.1 名稱空間與變量作用域比較
12.3.2 名稱查找、確定作用域、覆蓋
12.3.3 無限製的名稱空間
12.4 導入模塊
12.4.1 import語句
12.4.2 from-import語句
12.4.3 多行導入
12.4.4 擴展的import語句(as)
12.5 模塊導入的特性
12.5.1 載入時執行模塊
12.5.2 導入(import)和加載(load)
12.5.3 導入到當前名稱空間的名稱
12.5.4 被導入到導入者作用域的名字
12.5.5 關於__future__
12.5.6 警告框架
12.5.7 從ZIP文件中導入模塊
12.5.8 “新的”導入鈎子
12.6 模塊內建函數
12.6.1 __import__()
12.6.2 globals()和locals()
12.6.3 reload()
12.7 包
12.7.1 目錄結構
12.7.2 使用from-import導入包
12.8 模塊的其他特性
12.8.1 自動載入的模塊
12.8.2 阻止屬性導入
12.8.3 不區分大小的導入
12.8.4 源代碼編碼
12.8.5 導入循環
12.8.6 模塊執行
12.9 相關模塊
12.10 練習
第13章 麵嚮對象編程
13.1 引言
13.2 麵嚮對象編程
13.2.1 麵嚮對象設計與麵嚮對象編程的關係
13.2.2 現實中的問題
13.2.3 *常用術語
13.3 類
13.3.1 創建類
13.3.2 聲明與定義
13.4 類屬性
13.4.1 類的數據屬性
13.4.2 Methods
13.4.3 決定類的屬性
13.4.4 特殊的類屬性
13.5 實例
13.5.1 初始化:通過調用類對象來創建實例
13.5.2 __init__()“構造器”方法
13.5.3 __new__()“構造器”方法
13.5.4 __del__()“解構器”方法
13.6 實例屬性
13.6.1 “實例化”實例屬性(或創建一個更好的構造器)
13.6.2 查看實例屬性
13.6.3 特殊的實例屬性
13.6.4 建類型屬性
13.6.5 實例屬性vs類屬性
13.7 綁定和方法調用
13.7.1 調用綁定方法
13.7.2 調用非綁定方法
13.8 靜態方法和類方法
13.8.1 staticmethod()和classmethod()內建函數
13.8.2 使用函數修飾符
13.9 組閤
13.10 子類和派生
13.11 繼承
13.11.1 __bases__類屬性
13.11.2 通過繼承覆蓋方法
13.11.3 從標準類型派生
13.11.4 多重繼承
13.12 類、實例和其他對象的內建函數
13.12.1 issubclass()
13.12.2 isinstance()
13.12.3 hasattr()、getattr()、setattr()、delattr()
13.12.4 dir()
13.12.5 super()
13.12.6 vars()
13.13 用特殊方法定製類
13.13.1 簡單定製(RoundFloat2)
13.13.2 數值定製(Time60)
13.13.3 迭代器(RandSeq和AnyIter)
13.13.4 *多類型定製(NumStr)
13.14 私有化
13.15 *授權
13.15.1 包裝
13.15.2 實現授權
13.16 新式類的高級特性(Python 2.2+)
13.16.1 新式類的通用特性
13.16.2 __slots__類屬性
13.16.3 __getattribute__()特殊方法
13.16.4 描述符
13.16.5 元類和__metaclass__
13.17 相關模塊和文檔
13.18 練習
第14章 執行環境
14.1 可調用對象
14.1.1 函數
14.1.2 方法
14.1.3 類
14.1.4 類的實例
14.2 代碼對象
14.3 可執行的對象聲明和內建函數
14.3.1 callable()
14.3.2 compile()
14.3.3 eval()
14.3.4 exec
14.3.5 input()
14.3.6 使用Python在運行時生成和執行Python代碼
14.4 執行其他(Python)程序
14.4.1 導入
14.4.2 execfile()
14.4.3 將模塊作為腳本執行
14.5 執行其他(非Python)程序
14.5.1 os.system()
14.5.2 os.popen()
14.5.3 os.fork()、os.exec*()、os.wait*()
14.5.4 os.spawn*()
14.5.5 subprocess 模塊
14.5.6 相關函數
14.6 受限執行
14.7 結束執行
14.7.1 sys.exit() and SystemExit
14.7.2 sys.exitfunc()
14.7.3 os._exit() 函數
14.7.4 os.kill() Function
14.8 各種操作係統接口
14.9 相關模塊
14.10 練習
第2部分 高級主題
第15章 正則錶達式
15.1 引言/動機
15.2 正則錶達式使用的特殊符號和字符
15.2.1 用管道符號(|)匹配多個正則錶達式模式
15.2.2 匹配任意一個單個的字符(.)
15.2.3 從字符串的開頭或結尾或單詞邊界開始匹配(^/$ / /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 頂層窗口:Tkinter.Tk()
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.3.2 Swing GUI開發(Java或者Python!)
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 練習
· · · · · · (
收起)