出版時(shí)間:2008-06 出版社:人民郵電出版社 作者:[美]Wesley J. Chun(陳仲才) 頁(yè)數(shù):654 譯者:CPUG
Tag標(biāo)簽:無
內(nèi)容概要
本書是經(jīng)典的Python指導(dǎo)書,在第一版的基礎(chǔ)上進(jìn)行了全面升級(jí)。全書分為兩個(gè)部分:第1部分占據(jù)了大約三分之二的篇幅,闡釋這門語(yǔ)言的“核心”內(nèi)容,包括基本的概念和語(yǔ)句、語(yǔ)法和風(fēng)格、Python對(duì)象、數(shù)字類型、序列類型、映射和集合類型、條件和循環(huán)、文件和輸入/輸出、錯(cuò)誤和異常、函數(shù)和函數(shù)式編程、模塊、面向?qū)ο缶幊?、?zhí)行環(huán)境等內(nèi)容:第2部分則提供了各種高級(jí)主題來展示可以使用Python做些什么,包括正則表達(dá)式、網(wǎng)絡(luò)編程、網(wǎng)絡(luò)客戶端編程、多線程編程、圖形用戶界面編程、Web編程、數(shù)據(jù)庫(kù)編程、擴(kuò)展Python 和一些其他材料。 本書適合Python初學(xué)者,以及已經(jīng)入門但想繼續(xù)學(xué)習(xí)和提高自身Python技巧的程序員。
作者簡(jiǎn)介
作者:(美國(guó))丘恩(Wesley J.Chun) 譯者:宋吉廣
書籍目錄
第1部分 Python核心 第1章 歡迎來到Python世界 1.1 什么是Python 1.2 起源 1.3 特點(diǎn) 1.3.1 高級(jí) 1.3.2 面向?qū)ο蟆 ?.3.3 可升級(jí) 1.3.4 可擴(kuò)展 1.3.5 可移植性 1.3.6 易學(xué) 1.3.7 易讀 1.3.8 易維護(hù) 1.3.9 健壯性 1.3.10 高效的快速原型開發(fā)工具 1.3.11 內(nèi)存管理器 1.3.12 解釋性和(字節(jié))編譯性 1.4 下載和安裝Python 1.5 運(yùn)行Python 1.5.1 命令行上的交互式解釋器 1.5.2 從命令行啟動(dòng)腳本 1.5.3 集成開發(fā)環(huán)境 1.5.4 其他的集成開發(fā)環(huán)境和執(zhí)行環(huán)境 1.6 Python文檔 1.7 比較Python(Python與其他語(yǔ)言的比較) 1.8 其他實(shí)現(xiàn) 1.9 練習(xí) 第2章 快速入門 2.1 程序輸出,print語(yǔ)句及“Hello World!” 2.2 程序輸入和raw_input()內(nèi)建函數(shù) 2.3 注釋 2.4 操作符 2.5 變量和賦值 2.6 數(shù)字 2.7 字符串 2.8 列表和元組 2.9 字典 2.10 代碼塊及縮進(jìn)對(duì)齊 2.11 if語(yǔ)句 2.12 while循環(huán) 2.13 for循環(huán)和range()內(nèi)建函數(shù) 2.14 列表解析 2.15 文件和內(nèi)建函數(shù)open()、file() 2.16 錯(cuò)誤和異?! ?.17 函數(shù) 2.17.1 如何定義函數(shù) 2.17.2 如何調(diào)用函數(shù) 2.17.3 默認(rèn)參數(shù) 2.18 類 2.19 模塊 2.19.1 如何導(dǎo)入模塊 2.19.2 如何訪問一個(gè)模塊函數(shù)或訪問一個(gè)模塊變量 2.20 實(shí)用的函數(shù) 2.21 練習(xí) 第3章 Python基礎(chǔ) 3.1 語(yǔ)句和語(yǔ)法 3.1.1 注釋(#) 3.1.2 繼續(xù)(\) 3.1.3 多個(gè)語(yǔ)句構(gòu)成代碼組(:) 3.1.4 代碼組由不同的縮進(jìn)分隔 3.1.5 同一行書寫多個(gè)語(yǔ)句(;) 3.1.6 模塊 3.2 變量賦值 3.2.1 賦值操作符 3.2.2 增量賦值 3.2.3 多重賦值 3.2.4 “多元”賦值 3.3 標(biāo)識(shí)符 3.3.1 合法的Python標(biāo)識(shí)符 3.3.2 關(guān)鍵字 3.3.3 內(nèi)建 3.3.4 專用下劃線標(biāo)識(shí)符 3.4 基本風(fēng)格指南 3.4.1 模塊結(jié)構(gòu)和布局 3.4.2 在主程序中書寫測(cè)試代碼 3.5 內(nèi)存管理 3.5.1 變量定義 3.5.2 動(dòng)態(tài)類型 3.5.3 內(nèi)存分配 3.5.4 引用計(jì)數(shù) 3.5.5 垃圾收集 3.6 第一個(gè)Python程序 3.7 相關(guān)模塊和開發(fā)工具 3.8 練習(xí) 第4章 Python對(duì)象 4.1 Python 對(duì)象 4.2 標(biāo)準(zhǔn)類型 4.3 其他內(nèi)建類型 4.3.1 類型對(duì)象和type類型對(duì)象 4.3.2 None--Python的Null對(duì)象 4.4 內(nèi)部類型 4.4.1 代碼對(duì)象 4.4.2 幀對(duì)象 4.4.3 跟蹤記錄對(duì)象 4.4.4 切片對(duì)象 4.4.5 省略對(duì)象 4.4.6 XRange 對(duì)象 4.5 標(biāo)準(zhǔn)類型操作符 4.5.1 對(duì)象值的比較 4.5.2 對(duì)象身份比較 4.5.3 布爾類型 4.6 標(biāo)準(zhǔn)類型內(nèi)建函數(shù) 4.6.1 type() 4.6.2 cmp() 4.6.3 str()和repr()(及``操作符) 4.6.4 type()和isinstance() 4.6.5 Python類型操作符和內(nèi)建函數(shù)總結(jié) 4.7 類型工廠函數(shù) 4.8 標(biāo)準(zhǔn)類型的分類 4.8.1 存儲(chǔ)模型 4.8.2 更新模型 4.8.3 訪問模型 4.9 不支持的類型 4.10 練習(xí) 第5章 數(shù)字 5.1 數(shù)字簡(jiǎn)介 5.1.1 如何創(chuàng)建數(shù)值對(duì)象并用其賦值(數(shù)字對(duì)象) 5.1.2 如何更新數(shù)字對(duì)象 5.1.3 如何刪除數(shù)字對(duì)象 5.2 整型 5.2.1 布爾型 5.2.2 標(biāo)準(zhǔn)整型 5.2.3 長(zhǎng)整型 5.2.4 整型和長(zhǎng)整型的統(tǒng)一 5.3 雙精度浮點(diǎn)型 5.4 復(fù)數(shù) 5.5 操作符 5.5.1 混合模式操作符 5.5.2 標(biāo)準(zhǔn)類型操作符 5.5.3 算術(shù)操作符 5.5.4 *位操作符(只適用于整型) 5.6 內(nèi)建函數(shù)與工廠函數(shù) 5.6.1 標(biāo)準(zhǔn)類型函數(shù) 5.6.2 數(shù)字類型函數(shù) 5.6.3 僅用于整型的函數(shù) 5.7 其他數(shù)字類型 5.7.1 布爾“數(shù)” 5.7.2 十進(jìn)制浮點(diǎn)型 5.8 相關(guān)模塊 5.9 練習(xí) 第6章 序列:字符串、列表和元組 6.1 序列 6.1.1 標(biāo)準(zhǔn)類型操作符 6.1.2 序列類型操作符 6.1.3 內(nèi)建函數(shù)(BIF) 6.2 字符串 6.3 字符串和操作符 6.3.1 標(biāo)準(zhǔn)類型操作符 6.3.2 序列操作符切片([]和[:]) 6.4 只適用于字符串的操作符 6.4.1 格式化操作符(%) 6.4.2 字符串模板: 更簡(jiǎn)單的替代品 6.4.3 原始字符串操作符(r/R) 6.4.4 Unicode字符串操作符(u/U) 6.5 內(nèi)建函數(shù) 6.5.1 標(biāo)準(zhǔn)類型函數(shù) 6.5.2 序列類型函數(shù) 6.5.3 字符串類型函數(shù) 6.6 字符串內(nèi)建函數(shù) 6.7 字符串的獨(dú)特特性 6.7.1 特殊字符串和控制字符 6.7.2 三引號(hào) 6.7.3 字符串不變性 6.8 Unicode 6.8.1 術(shù)語(yǔ) 6.8.2 什么是Unicode 6.8.3 怎樣使用Unicode 6.8.4 Codec是什么 6.8.5 編碼解碼 6.8.6 把Unicode應(yīng)用到實(shí)際應(yīng)用中 6.8.7 從現(xiàn)實(shí)中得來的教訓(xùn) 6.8.8 Python的Unicode支持 6.9 相關(guān)模塊 6.10 字符串關(guān)鍵點(diǎn)總結(jié) 6.11 列表 6.12 操作符 6.12.1 標(biāo)準(zhǔn)類型操作符 6.12.2 序列類型操作符 6.12.3 列表類型操作符和列表解析 6.13 內(nèi)建函數(shù) 6.13.1 標(biāo)準(zhǔn)類型函數(shù) 6.13.2 序列類型函數(shù) 6.13.3 列表類型內(nèi)建函數(shù) 6.14 列表類型的內(nèi)建函數(shù) 6.15 列表的特殊特性 6.16 元組 6.17 元組操作符和內(nèi)建函數(shù) 6.17.1 標(biāo)準(zhǔn)類型操作符、序列類型操作符和內(nèi)建函數(shù) 6.17.2 元組類型操作符和內(nèi)建函數(shù)、內(nèi)建方法 6.18 元組的特殊特性 6.18.1 不可變性給元組帶來了什么影響 6.18.2 元組也不是那么“不可變” 6.18.3 默認(rèn)集合類型 6.18.4 單元素元組 6.18.5 字典的關(guān)鍵字 6.19 相關(guān)模塊 6.20 *拷貝Python對(duì)象、淺拷貝和深拷貝 6.21 序列類型小結(jié) 6.22 練習(xí) 第7章 映像和集合類型 7.1 映射類型:字典 7.1.1 如何創(chuàng)建字典和給字典賦值 7.1.2 如何訪問字典中的值 7.1.3 如何更新字典 7.1.4 如何刪除字典元素和字典 7.2 映射類型操作符 7.2.1 標(biāo)準(zhǔn)類型操作符 7.2.2 映射類型操作符 7.3 映射類型的內(nèi)建函數(shù)和工廠函數(shù) 7.3.1 標(biāo)準(zhǔn)類型函數(shù)[type()、str()和cmp()] 7.3.2 映射類型相關(guān)的函數(shù) 7.4 映射類型內(nèi)建方法 7.5 字典的鍵 7.5.1 不允許一個(gè)鍵對(duì)應(yīng)多個(gè)值 7.5.2 鍵必須是可哈希的 7.6 集合類型 7.6.1 如何創(chuàng)建集合類型和給集合賦值 7.6.2 如何訪問集合中的值 7.6.3 如何更新集合 7.6.4 如何刪除集合中的成員和集合 7.7 集合類型操作符 7.7.1 標(biāo)準(zhǔn)類型操作符(所有的集合類型) 7.7.2 集合類型操作符(所有的集合類型) 7.7.3 集合類型操作符(僅適用于可變集合) 7.8 內(nèi)建函數(shù) 7.8.1 標(biāo)準(zhǔn)類型函數(shù) 7.8.2 集合類型工廠函數(shù) 7.9 集合類型內(nèi)建方法 7.9.1 方法(所有的集合方法) 7.9.2 方法(僅適用于可變集合) 7.9.3 操作符和內(nèi)建方法比較 7.10 集合類型總結(jié)表 7.11 相關(guān)模塊 7.12 練習(xí) 第8章 條件和循環(huán) 8.1 if語(yǔ)句 8.1.1 多重條件表達(dá)式 8.1.2 單一語(yǔ)句的代碼塊 8.2 else語(yǔ)句 8.3 elif(即else-if)語(yǔ)句 8.4 條件表達(dá)式(即“三元操作符”) 8.5 while語(yǔ)句 8.5.1 一般語(yǔ)法 8.5.2 計(jì)數(shù)循環(huán) 8.5.3 無限循環(huán) 8.6 for語(yǔ)句 8.6.1 一般語(yǔ)法 8.6.2 用于序列類型 8.6.3 用于迭代器類型 8.6.4 range()內(nèi)建函數(shù) 8.6.5 xrange() 內(nèi)建函數(shù) 8.6.6 與序列相關(guān)的內(nèi)建函數(shù) 8.7 break語(yǔ)句 8.8 continue語(yǔ)句 8.9 pass語(yǔ)句 8.10 再談else語(yǔ)句 8.11 迭代器和iter()函數(shù) 8.11.1 什么是迭代器 8.11.2 為什么要迭代器 8.11.3 如何迭代 8.11.4 使用迭代器 8.11.5 可變對(duì)象和迭代器 8.11.6 如何創(chuàng)建迭代器 8.12 列表解析 8.13 生成器表達(dá)式 8.14 相關(guān)模塊 8.15 練習(xí) 第9章 文件和輸入輸出 9.1 文件對(duì)象 9.2 文件內(nèi)建函數(shù)(open()和file()) 9.2.1 工廠函數(shù)file() 9.2.2 通用換行符支持(UNS) 9.3 文件內(nèi)建方法 9.3.1 輸入 9.3.2 輸出 9.3.3 文件內(nèi)移動(dòng) 9.3.4 文件迭代 9.3.5 其他 9.3.6 文件方法雜項(xiàng) 9.4 文件內(nèi)建屬性 9.5 標(biāo)準(zhǔn)文件 9.6 命令行參數(shù) 9.7 文件系統(tǒng) 9.8 文件執(zhí)行 9.9 永久存儲(chǔ)模塊 9.9.1 pickle和marshal模塊 9.9.2 DBM風(fēng)格的模塊 9.9.3 shelve模塊 9.10 相關(guān)模塊 9.11 練習(xí) 第10章 錯(cuò)誤和異?! ?0.1 什么是異?! ?0.1.1 錯(cuò)誤 10.1.2 異?! ?0.2 Python 中的異?! ?0.3 檢測(cè)和處理異?! ?0.3.1 try-except語(yǔ)句 10.3.2 包裝內(nèi)建函數(shù) 10.3.3 帶有多個(gè)except的try語(yǔ)句 10.3.4 處理多個(gè)異常的except語(yǔ)句 10.3.5 捕獲所有異?! ?0.3.6 “異常參數(shù)” 10.3.7 在應(yīng)用使用我們封裝的函數(shù) 10.3.8 else子句 10.3.9 finally子句 10.3.10 try-finally語(yǔ)句 10.3.11 try-except-else-finally:廚房一鍋端 10.4 上下文管理 10.4.1 with語(yǔ)句 10.4.2 *上下文管理協(xié)議 10.5 *字符串作為異?! ?0.6 觸發(fā)異常 10.7 斷言 10.8 標(biāo)準(zhǔn)異?! ?0.9 *創(chuàng)建異?! ?0.10?。ìF(xiàn)在)為什么用異?! ?0.11 到底為什么要異常 10.12 異常和sys模塊 10.13 相關(guān)模塊 10.14 練習(xí) 第11章 函數(shù)和函數(shù)式編程 11.1 什么是函數(shù)? 11.1.1 函數(shù)vs過程 11.1.2 返回值與函數(shù)類型 11.2 調(diào)用函數(shù) 11.2.1 函數(shù)操作符 11.2.2 關(guān)鍵字參數(shù) 11.2.3 默認(rèn)參數(shù) 11.2.4 參數(shù)組 11.3 創(chuàng)建函數(shù) 11.3.1 def語(yǔ)句 11.3.2 聲明與定義比較 11.3.3 前向引用 11.3.4 函數(shù)屬性 11.3.5 內(nèi)部/內(nèi)嵌函數(shù) 11.3.6 *函數(shù)(與方法)裝飾器 11.4 傳遞函數(shù) 11.5 Formal Arguments 11.5.1 位置參數(shù) 11.5.2 默認(rèn)參數(shù) 11.6 可變長(zhǎng)度的參數(shù) 11.6.1 非關(guān)鍵字可變長(zhǎng)參數(shù)(元組) 11.6.2 關(guān)鍵字變量參數(shù)(字典) 11.6.3 調(diào)用帶有可變長(zhǎng)參數(shù)對(duì)象函數(shù) 11.7 函數(shù)式編程 11.7.1 匿名函數(shù)與lambda 11.7.2 內(nèi)建函數(shù)apply()、filter()、map()、reduce() 11.7.3 偏函數(shù)應(yīng)用 11.8 變量作用域 11.8.1 全局變量與局部變量 11.8.2 globa語(yǔ)句 11.8.3 作用域的數(shù)字 11.8.4 閉包 11.8.5 作用域和lambda 11.8.6 變量作用域和名稱空間 11.9 *遞歸 11.10 生成器 11.10.1 簡(jiǎn)單的生成器特性 11.10.2 加強(qiáng)的生成器特性 11.11 練習(xí) 第12章 模塊 12.1 什么是模塊 12.2 模塊和文件 12.2.1 模塊名稱空間 12.2.2 搜索路徑和路徑搜索 12.3 名稱空間 12.3.1 名稱空間與變量作用域比較 12.3.2 名稱查找、確定作用域、覆蓋 12.3.3 無限制的名稱空間 12.4 導(dǎo)入模塊 12.4.1 import語(yǔ)句 12.4.2 from-import語(yǔ)句 12.4.3 多行導(dǎo)入 12.4.4 擴(kuò)展的import語(yǔ)句(as) 12.5 模塊導(dǎo)入的特性 12.5.1 載入時(shí)執(zhí)行模塊 12.5.2 導(dǎo)入(import)和加載(load) 12.5.3 導(dǎo)入到當(dāng)前名稱空間的名稱 12.5.4 被導(dǎo)入到導(dǎo)入者作用域的名字 12.5.5 關(guān)于__future__ 12.5.6 警告框架 12.5.7 從ZIP文件中導(dǎo)入模塊 12.5.8 “新的”導(dǎo)入鉤子 12.6 模塊內(nèi)建函數(shù) 12.6.1 __import__() 12.6.2 globals()和locals() 12.6.3 reload() 12.7 包 12.7.1 目錄結(jié)構(gòu) 12.7.2 使用from-import導(dǎo)入包 12.8 模塊的其他特性 12.8.1 自動(dòng)載入的模塊 12.8.2 阻止屬性導(dǎo)入 12.8.3 不區(qū)分大小的導(dǎo)入 12.8.4 源代碼編碼 12.8.5 導(dǎo)入循環(huán) 12.8.6 模塊執(zhí)行 12.9 相關(guān)模塊 12.10 練習(xí) 第13章 面向?qū)ο缶幊獭 ?3.1 引言 13.2 面向?qū)ο缶幊獭 ?3.2.1 面向?qū)ο笤O(shè)計(jì)與面向?qū)ο缶幊痰年P(guān)系 13.2.2 現(xiàn)實(shí)中的問題 13.2.3 *常用術(shù)語(yǔ) 13.3 類 13.3.1 創(chuàng)建類 13.3.2 聲明與定義 13.4 類屬性 13.4.1 類的數(shù)據(jù)屬性 13.4.2 Methods 13.4.3 決定類的屬性 13.4.4 特殊的類屬性 13.5 實(shí)例 13.5.1 初始化:通過調(diào)用類對(duì)象來創(chuàng)建實(shí)例 13.5.2 __init__()“構(gòu)造器”方法 13.5.3 __new__()“構(gòu)造器”方法 13.5.4 __del__()“解構(gòu)器”方法 13.6 實(shí)例屬性 13.6.1 “實(shí)例化”實(shí)例屬性(或創(chuàng)建一個(gè)更好的構(gòu)造器) 13.6.2 查看實(shí)例屬性 13.6.3 特殊的實(shí)例屬性 13.6.4 建類型屬性 13.6.5 實(shí)例屬性vs類屬性 13.7 綁定和方法調(diào)用 13.7.1 調(diào)用綁定方法 13.7.2 調(diào)用非綁定方法 13.8 靜態(tài)方法和類方法 13.8.1 staticmethod()和classmethod()內(nèi)建函數(shù) 13.8.2 使用函數(shù)修飾符 13.9 組合 13.10 子類和派生 13.11 繼承 13.11.1 __bases__類屬性 13.11.2 通過繼承覆蓋方法 13.11.3 從標(biāo)準(zhǔn)類型派生 13.11.4 多重繼承 13.12 類、實(shí)例和其他對(duì)象的內(nèi)建函數(shù) 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 簡(jiǎn)單定制(RoundFloat2) 13.13.2 數(shù)值定制(Time60) 13.13.3 迭代器(RandSeq和AnyIter) 13.13.4 *多類型定制(NumStr) 13.14 私有化 13.15 *授權(quán) 13.15.1 包裝 13.15.2 實(shí)現(xiàn)授權(quán) 13.16 新式類的高級(jí)特性(Python 2.2+) 13.16.1 新式類的通用特性 13.16.2 __slots__類屬性 13.16.3 __getattribute__()特殊方法 13.16.4 描述符 13.16.5 元類和__metaclass__ 13.17 相關(guān)模塊和文檔 13.18 練習(xí) 第14章 執(zhí)行環(huán)境 14.1 可調(diào)用對(duì)象 14.1.1 函數(shù) 14.1.2 方法 14.1.3 類 14.1.4 類的實(shí)例 14.2 代碼對(duì)象 14.3 可執(zhí)行的對(duì)象聲明和內(nèi)建函數(shù) 14.3.1 callable() 14.3.2 compile() 14.3.3 eval() 14.3.4 exec 14.3.5 input() 14.3.6 使用Python在運(yùn)行時(shí)生成和執(zhí)行Python代碼 14.4 執(zhí)行其他(Python)程序 14.4.1 導(dǎo)入 14.4.2 execfile() 14.4.3 將模塊作為腳本執(zhí)行 14.5 執(zhí)行其他(非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 相關(guān)函數(shù) 14.6 受限執(zhí)行 14.7 結(jié)束執(zhí)行 14.7.1 sys.exit() and SystemExit 14.7.2 sys.exitfunc() 14.7.3 os._exit() 函數(shù) 14.7.4 os.kill() Function 14.8 各種操作系統(tǒng)接口 14.9 相關(guān)模塊 14.10 練習(xí) 第2部分 高級(jí)主題 第15章 正則表達(dá)式 15.1 引言/動(dòng)機(jī) 15.2 正則表達(dá)式使用的特殊符號(hào)和字符 15.2.1 用管道符號(hào)(|)匹配多個(gè)正則表達(dá)式模式 15.2.2 匹配任意一個(gè)單個(gè)的字符(.) 15.2.3 從字符串的開頭或結(jié)尾或單詞邊界開始匹配(^/$ /\b /\B ) 15.2.4 創(chuàng)建字符類([]) 15.2.5 指定范圍(-)和否定(^) 15.2.6 使用閉包操作符(*,+,?,{})實(shí)現(xiàn)多次出現(xiàn)/重復(fù)匹配 15.2.7 特殊字符表示、字符集 15.2.8 用圓括號(hào)(())組建組 15.3 正則表達(dá)式和Python語(yǔ)言 15.3.1 re模塊:核心函數(shù)和方法 15.3.2 使用compile()編譯正則表達(dá)式 15.3.3 匹配對(duì)象和group()、groups()方法 15.3.4 用match()匹配字符串 15.3.5 search()在一個(gè)字符串中查找一個(gè)模式(搜索與匹配的比較) 15.3.6 匹配多個(gè)字符串(|) 15.3.7 匹配任意單個(gè)字符(.) 15.3.8 創(chuàng)建字符集合([]) 15.3.9 重復(fù)、特殊字符和子組 15.3.10 從字符串的開頭或結(jié)尾匹配及在單詞邊界上的匹配 15.3.11 用findall()找到每個(gè)出現(xiàn)的匹配部分 15.3.12 用sub()(和subn())進(jìn)行搜索和替換 15.3.13 用split()分割(分隔模式) 15.4 正則表達(dá)式示例 15.4.1 匹配一個(gè)字符串 15.4.2 搜索與匹配的比較,“貪婪”匹配 15.5 練習(xí) 第16章 網(wǎng)絡(luò)編程 16.1 引言 16.1.1 什么是客戶端/服務(wù)器架構(gòu) 16.1.2 客戶端/服務(wù)器網(wǎng)絡(luò)編程 16.2 套接字:通信端點(diǎn) 16.2.1 什么是套接字 16.2.2 套接字地址:主機(jī)與端口 16.2.3 面向連接與無連接 16.3 Python中的網(wǎng)絡(luò)編程 16.3.1 socket()模塊函數(shù) 16.3.2 套接字對(duì)象(內(nèi)建)方法 16.3.3 創(chuàng)建一個(gè)TCP服務(wù)器 16.3.4 創(chuàng)建TCP客戶端 16.3.5 運(yùn)行我們的客戶端與TCP服務(wù)器 16.3.6 創(chuàng)建一個(gè)UDP服務(wù)器 16.3.7 創(chuàng)建一個(gè)UDP客戶端 16.3.8 執(zhí)行UDP服務(wù)器和客戶端 16.3.9 Socket模塊屬性 16.4 *SocketServer模塊 16.4.1 創(chuàng)建一個(gè)SocketServerTCP服務(wù)器 16.4.2 創(chuàng)建SocketServerTCP客戶端 16.4.3 執(zhí)行TCP服務(wù)器和客戶端 16.5 Twisted框架介紹 16.5.1 創(chuàng)建一個(gè)Twisted Reactor TCP服務(wù)器 16.5.2 創(chuàng)建一個(gè)Twisted Reactor TCP客戶端 16.5.3 執(zhí)行TCP服務(wù)器和客戶端 16.6 相關(guān)模塊 16.7 練習(xí) 第17章 網(wǎng)絡(luò)客戶端編程 17.1 什么是因特網(wǎng)客戶端 17.2 文件傳輸 17.2.1 文件傳輸網(wǎng)際協(xié)議 17.2.2 文件傳輸協(xié)議(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 網(wǎng)絡(luò)新聞 17.3.1 Usenet與新聞組 17.3.2 網(wǎng)絡(luò)新聞傳輸協(xié)議(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 電子郵件系統(tǒng)組件和協(xié)議 17.4.2 發(fā)送電子郵件 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 相關(guān)模塊 17.5.1 電子郵件 17.5.2 其他網(wǎng)絡(luò)協(xié)議 17.6 練習(xí) 第18章 多線程編程 18.1 引言/動(dòng)機(jī) 18.2 線程和進(jìn)程 18.2.1 什么是進(jìn)程 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模塊中的其他函數(shù) 18.5.4 生產(chǎn)者-消費(fèi)者問題和Queue模塊 18.6 相關(guān)模塊 18.7 練習(xí) 第19章 圖形用戶界面編程 19.1 簡(jiǎn)介 19.1.1 什么是Tcl、Tk和Tkinter 19.1.2 安裝和使用Tkinter 533 19.1.3 客戶端/服務(wù)器架構(gòu) 534 19.2 Tkinter與Python編程 534 19.2.1 Tkinter模塊:把Tk引入你的程序 19.2.2 GUI程序開發(fā)簡(jiǎn)介 19.2.3 頂層窗口:Tkinter.Tk() 19.2.4 Tk組件 19.3 Tkinter舉例 19.3.1 標(biāo)簽組件 19.3.2 按鈕組件 19.3.3 標(biāo)簽和按鈕組件 19.3.4 標(biāo)簽、按鈕和進(jìn)度條組件 19.3.5 偏函數(shù)應(yīng)用舉例 19.3.6 中級(jí)Tkinter范例 19.4 其他GUI簡(jiǎn)介 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 相關(guān)模塊和其他GUI 19.6 練習(xí) 第20章 Web編程 20.1 介紹 20.1.1 Web應(yīng)用:客戶端/服務(wù)器計(jì)算 20.1.2 因特網(wǎng) 20.2 使用Python進(jìn)行Web應(yīng)用:創(chuàng)建一個(gè)簡(jiǎn)單的Web客戶端 20.2.1 統(tǒng)一資源定位符 20.2.2 urlparse模塊 20.2.3 urllib模塊 20.2.4 urllib2模塊 20.3 高級(jí)Web客戶端 20.4 CGI:幫助Web服務(wù)器處理客戶端數(shù)據(jù) 20.4.1 CGI介紹 20.4.2 CGI應(yīng)用程序 20.4.3 cgi模塊 20.5 建立CGI應(yīng)用程序 20.5.1 建立Web服務(wù)器 20.5.2 建立表單頁(yè) 20.5.3 生成結(jié)果頁(yè) 20.5.4 生成表單和結(jié)果頁(yè)面 20.5.5 全面交互的Web站點(diǎn) 20.6 在CGI中使用Unicode編碼 20.7 高級(jí)CGI 20.7.1 Mulitipart表單提交和文件的上傳 20.7.2 多值字段 20.7.3 cookie 20.7.4 使用高級(jí)CGI 20.8 Web(HTTP)服務(wù)器 20.9 相關(guān)模塊 20.10 練習(xí) 第21章 數(shù)據(jù)庫(kù)編程 21.1 介紹 21.1.1 持久存儲(chǔ) 21.1.2 基本的數(shù)據(jù)庫(kù)操作和SQL語(yǔ)言 21.1.3 數(shù)據(jù)庫(kù)和Python 21.2 Python數(shù)據(jù)庫(kù)應(yīng)用程序程序員接口(DB-API) 21.2.1 模塊屬性 21.2.2 連接對(duì)象 21.2.3 游標(biāo)對(duì)象 21.2.4 類型對(duì)象和構(gòu)造器 21.2.5 關(guān)系數(shù)據(jù)庫(kù) 21.2.6 數(shù)據(jù)庫(kù)和Python:接口程序 21.2.7 使用數(shù)據(jù)庫(kù)接口程序舉例 21.3 對(duì)象-關(guān)系管理器(ORM) 21.3.1 考慮對(duì)象,而不是SQL 21.3.2 Python和ORM 21.3.3 雇員數(shù)據(jù)庫(kù)舉例 21.3.4 總結(jié) 21.4 相關(guān)模塊 21.5 練習(xí) 第22章 擴(kuò)展Python 623 22.1 引言/動(dòng)機(jī) 22.1.1 什么是擴(kuò)展 22.1.2 為什么要擴(kuò)展Python 22.2 創(chuàng)建Python擴(kuò)展 22.2.1 創(chuàng)建您的應(yīng)用程序代碼 22.2.2 用樣板來包裝你的代碼 22.2.3 編譯 22.2.4 導(dǎo)入和測(cè)試 22.2.5 引用計(jì)數(shù) 22.2.6 線程和全局解釋器鎖(GIL) 22.3 相關(guān)話題 22.4 練習(xí) 第23章 其他話題 23.1 Web服務(wù) 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 中等規(guī)模的例子 23.3 用Jython寫Python和Java的程序 23.3.1 什么是Jython 23.3.2 Swing GUI開發(fā)(Java或者Python!) 23.4 練習(xí) 23.2.4 微軟PowerPoint 23.2.5 微軟Outlook 23.2.6 中等規(guī)模的例子 23.3 用Jython寫Python和Java的程序 23.3.1 什么是Jython 23.3.2 Swing GUI開發(fā)(Java或者Python!) 23.4 練習(xí)
章節(jié)摘錄
插圖:第1部分 Python核心第1章 歡迎來到Python世界開篇將介紹一些Python的背景知識(shí),包括什么是Python、Python的起源和它的一些關(guān)鍵特性。一旦你來了興致,我們就會(huì)向你介紹怎樣獲得Python,以及如何在你的系統(tǒng)上安裝并運(yùn)行它。本章最后的練習(xí)將會(huì)幫助你非常自如地使用Python,包括使用交互式解釋器,以及創(chuàng)建并運(yùn)行腳本程序。1.1 什么是PythonPython是一門優(yōu)雅而健壯的編程語(yǔ)言,它繼承了傳統(tǒng)編譯語(yǔ)言的強(qiáng)大性和通用性,同時(shí)也借鑒了簡(jiǎn)單腳本和解釋語(yǔ)言的易用性。它可以幫你完成工作,而且一段時(shí)問以后,你還能看明白自己寫的這段代碼。你會(huì)對(duì)自己如此快地學(xué)會(huì)它和它強(qiáng)大的功能感到十分的驚訝,更不用提你已經(jīng)完成的工作了!只有你想不到,沒有Python做不到。1.2 起源Guido van Rossum于1989年底始創(chuàng)了Python,那時(shí),他還在荷蘭的CWI(Centrum voor Wiskunde en Informatica,國(guó)家數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究院)。1991年初,Python發(fā)布了第一個(gè)公開發(fā)行版。這一切究竟是如何開始的呢?像C、C++、Lisp、.Java和Perl一樣,Python來自于某個(gè)研究項(xiàng)目,項(xiàng)目中的那些程序員利用手邊現(xiàn)有的工具辛苦地工作著,他們?cè)O(shè)想并開發(fā)出了更好的解決辦法。那時(shí)van Rossum是一位研究人員,對(duì)解釋型語(yǔ)言ABC有著豐富的設(shè)計(jì)‘經(jīng)驗(yàn),這個(gè)語(yǔ)言同樣也是在CWI開發(fā)的。但是他不滿足其有限的開發(fā)能力。已經(jīng)使用并參與開發(fā)了像ABC這樣的高級(jí)語(yǔ)言后,再退回到C語(yǔ)言顯然是不可能的。他所期望的工具有一些是用于完成日常系統(tǒng)管理任務(wù)的,而且它還希望能夠訪問Amoeba分布式操作系統(tǒng)的系統(tǒng)調(diào)用。盡管vanRossum也曾想過為Amoeba開發(fā)專用語(yǔ)言,但足創(chuàng)造一種通用的程序設(shè)計(jì)語(yǔ)言顯然更加明智,于是在1989年末,Python的種子被播下了。1.3 特點(diǎn)盡管Python已經(jīng)流行了超過15年,但是一些人仍舊認(rèn)為相對(duì)于通用軟件開發(fā)產(chǎn)業(yè)而言,它還是個(gè)新丁。我們應(yīng)當(dāng)謹(jǐn)慎地使用“相對(duì)”這個(gè)詞,因?yàn)椤熬W(wǎng)絡(luò)時(shí)代”的程序開發(fā),幾年看上去就像幾十年。當(dāng)人們?cè)儐枺骸笆裁词荘ython?”的時(shí)候,很難用任何一個(gè)具象來描述它。人們更傾向于一口氣不加思索地說出他們對(duì)Python的所有感覺,Python是一(請(qǐng)?zhí)顚懀?,這些特點(diǎn)究竟又是什么呢?為了讓你能知其所以然,我們下面會(huì)對(duì)這些特點(diǎn)進(jìn)行逐一地闡釋。1.3.1 高級(jí)伴隨著每一代編程語(yǔ)言的產(chǎn)生,我們會(huì)達(dá)到一個(gè)新的高度。匯編語(yǔ)言是獻(xiàn)給那些掙扎在機(jī)器代碼中的人的禮物,后來有了FORTRAN、c和Pascal語(yǔ)言,它們將計(jì)算提升到了嶄新的高度,并且開創(chuàng)了軟件開發(fā)行業(yè)。伴隨著C語(yǔ)言誕生了更多的像c斗_卜、Java這樣的現(xiàn)代編譯語(yǔ)言。我們沒有止步于此,于是有了強(qiáng)大的、可以進(jìn)行系統(tǒng)調(diào)用的解釋型腳本語(yǔ)言,例如Tcl、Perl和Python。這些語(yǔ)言都有高級(jí)的數(shù)據(jù)結(jié)構(gòu),這樣就減少了以前“框架”開發(fā)需要的時(shí)間。像Python中的列表(大小可變的數(shù)組)和字典(哈希表)就是內(nèi)建于語(yǔ)言本身的。在核心語(yǔ)言中提供這些重要的構(gòu)建單元,可以鼓勵(lì)人們使用它們,縮短開發(fā)時(shí)間與代碼量,產(chǎn)生出可讀性更好的代碼。在C語(yǔ)言中,對(duì)于混雜數(shù)組(Python中的列表)和哈希表(Python中的字典)還沒有相應(yīng)的標(biāo)準(zhǔn)庫(kù),所以它們經(jīng)常被重復(fù)實(shí)現(xiàn),并被復(fù)制到每個(gè)新項(xiàng)目中去。這個(gè)過程混亂而且容易產(chǎn)生錯(cuò)誤。
編輯推薦
《Python核心編程(第2版)》提供了對(duì)Python核心特性系統(tǒng)的專家級(jí)講解;開發(fā)復(fù)雜的應(yīng)用程序和軟件所需的強(qiáng)大深入的視角:易用的圖表,詳細(xì)描述了Pyffion模塊、操作符、函數(shù)和方法:大量的專業(yè)級(jí)實(shí)例代碼,從小的代碼片段到功能齊全的應(yīng)用程序一應(yīng)俱全。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載