|
|
|
|
|
| 作者 |
: |
(美)丘恩
|
| ISBN |
: |
9787115178503
|
| 頁數 |
: |
654
|
| 開本 |
: |
16開
|
| 封面形式 |
: |
簡裝本
|
| 出版社 |
: |
人民郵電
|
| 出版日期 |
: |
2008-7-1
|
| NT$ |
: |
846
|
|
|
|
|
配送說明: 國際快遞 , 海運郵遞 。
付款說明: 1. VISA、MASTER線上刷卡 2. 信用卡傳真刷卡付款 3.
郵政劃撥 4. 銀行匯款 5. PAYPAL
|
|
|
|
|
 |
| |
初學Python?這是一本有關Pyttlon開發的權威指南 涵蓋近期發佈的Pyttlon版本的核心功能特性,而不僅僅是語法 學習更多的高階內容,如正則運算式、網路、多線程、圖形用戶界面、Web/CGl和Python擴展等 包括幾個全新的章節,關於數據庫、網路客戶端、Java/Jytt30n和Microsoft Office等 展示數以百計的代碼片段、交互實例和大量加強您的Pyttlon技能的實用練習 “對Wesley Chun《Pythorl核心編程》第二版的漫長等待是值得的——它的深邃、它的全面,以及它實用的練習將會幫助讀者學會並掌握傑出的Pythorl技能。” ——Alex Martelli,Python om a Nutshell一書作者和Python Cookbook一書編輯 “終於,一本傑出的融教材和參考書于一身的Pytflon書籍誕生了。” ——Michael Baxter,Linux Journal 學習專業的Python風格、最佳實踐和好的編程習慣; 加強對Pyttlon對象、內存模型和Pythom面向對象特性的深入理解; 構建更有效的Web、CGI、網際網路、網路和其他客戶端/伺服器架構應用程式及軟體; 學習如何使用Python中的Tkinler和其他工具來開發自己的GUI應用程式及軟體: 通過用C等語言編寫擴展來提升Pytllon應用程式的性能,或者通過使用多線程增強I/O相關的應用程式的能力; 學習Pyttlon中有關數據庫的API,以及如何在Pyttlon中使用各種不同的數據庫系統,包括MySQL、Postgres和SQLite。 本書提供: 對Python核心特性系統的專家級講解; 開發複雜的應用程式和軟體所需的強大深入的視角: 易用的圖表,詳細描述了Pyffion模組、操作符、函數和方法: 大量的專業級實例代碼,從小的代碼片段到功能齊全的應用程式一應俱全。
|
|
|
|
|
|
 |
| |
本書是經典的Python指導書,在第一版的基礎上進行了全面升級。全書分為兩個部分:第1部分佔據了大約三分之二的篇幅,闡釋這門語言的“核心”內容,包括基本的概念和語句、語法和風格、Python對象、數字類型、序列類型、映射和集合類型、條件和迴圈、文件和輸入/輸出、錯誤和異常、函數和函數式編程、模組、面向對象編程、執行環境等內容:第2部分則提供了各種高級主題來展示可以使用Python做些什麼,包括正則運算式、網路編程、網路客戶端編程、多線程編程、圖形用戶界面編程、Web編程、數據庫編程、擴展Python 和一些其他材料。 本書適合Python初學者,以及已經入門但想繼續學習和提高自身Python技巧的程式員。
|
|
|
|
|
|
 |
| |
第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 /\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 練習
|
|
|
|
|
|
 |
| |
第1部分 Python核心 第1章 歡迎來到Python世界 開篇將介紹一些Python的背景知識,包括什麼是Python、Python的起源和它的一些關鍵特性。一旦你來了興致,我們就會向你介紹怎樣獲得Python,以及如何在你的系統上安裝並運行它。本章最後的練習將會幫助你非常自如地使用Python,包括使用互動式解釋器,以及創建並運行腳本程式。 1.1 什麼是Python Python是一門優雅而健壯的編程語言,它繼承了傳統編譯語言的強大性和通用性,同時也借鑒了簡單腳本和解釋語言的易用性。它可以幫你完成工作,而且一段時問以後,你還能看明白自己寫的這段代碼。你會對自己如此快地學會它和它強大的功能感到十分的驚訝,更不用提你已經完成的工作了!只有你想不到,沒有Python做不到。 1.2 起源 Guido van Rossum于1989年底始創了Python,那時,他還在荷蘭的CWI(Centrum voor Wiskunde en Informatica,國家數學和電腦科學研究院)。1991年初,Python發佈了第一個公開發行版。這一切究竟是如何開始的呢?像C、C++、Lisp、.Java和Perl一樣,Python來自於某個研究項目,項目中的那些程式員利用手邊現有的工具辛苦地工作著,他們設想並開發出了更好的解決辦法。 那時van Rossum是一位研究人員,對解釋型語言ABC有著豐富的設計‘經驗,這個語言同樣也是在CWI開發的。但是他不滿足其有限的開發能力。已經使用並參與開發了像ABC這樣的高級語言後,再退回到C語言顯然是不可能的。他所期望的工具有一些是用於完成日常系統管理任務的,而且它還希望能夠訪問Amoeba分佈式作業系統的系統調用。儘管vanRossum也曾想過為Amoeba開發專用語言,但足創造一種通用的程式設計語言顯然更加明智,於是在1989年末,Python的種子被播下了。 1.3 特點 儘管Python已經流行了超過15年,但是一些人仍舊認為相對於通用軟體開發產業而言,它還是個新丁。我們應當謹慎地使用“相對”這個詞,因為“網路時代”的程式開發,幾年看上去就像幾十年。 當人們詢問:“什麼是Python?”的時候,很難用任何一個具象來描述它。人們更傾向於一口氣不加思索地說出他們對Python的所有感覺,Python是一(請填寫),這些特點究竟又是什麼呢?為了讓你能知其所以然,我們下面會對這些特點進行逐一地闡釋。 1.3.1 高級 伴隨著每一代編程語言的產生,我們會達到一個新的高度。組合語言是獻給那些掙紮在機器代碼中的人的禮物,後來有了FORTRAN、c和Pascal語言,它們將計算提升到了嶄新的高度,並且開創了軟體開發行業。伴隨著C語言誕生了更多的像c鬥_卜、Java這樣的現代編譯語言。我們沒有止步於此,於是有了強大的、可以進行系統調用的解釋型腳本語言,例如Tcl、Perl和Python。 這些語言都有高級的數據結構,這樣就減少了以前“框架”開發需要的時間。像Python中的列表(大小可變的數組)和字典(哈希表)就是內建於語言本身的。在核心語言中提供這些重要的構建單元,可以鼓勵人們使用它們,縮短開發時間與代碼量,產生出可讀性更好的代碼。 在C語言中,對於混雜數組(Python中的列表)和哈希表(Python中的字典)還沒有相應的標準庫,所以它們經常被重復實現,並被複製到每個新項目中去。這個過程混亂而且容易產生錯誤。 ……
|
|
|
 |