有 1 項符合
Python核心編程(第3版)
的圖書
|
|
| Python核心程式設計 第3版
作者:衛斯理
出版社:N/A
出版日期:2016-05-01
語言:簡體書
|
圖書介紹 - 資料來源:博客來 目前評分: 評分:
圖書名稱:Python核心編程(第3版) 內容簡介
全新升級版本,總共分為3部分。第1部分為講解了Python的一些通用應用,包括正則表達式、網絡編程、Internet客戶端編程、多線程編程、GUI編程、數據庫編程、Microsoft;Office編程、擴展Python等內容。第2部分講解了與Web開發相關的主題,包括Web客戶端和服務器、CGI和WSGI相關的Web編程、Django;Web框架、雲計算、高級Web服務。第3部分則為一個補充/實驗章節,包括文本處理以及一些其他內容。
Wesley Chun在高中階段開始進入計算世界,當時他使用的是BASIC和6502匯編語言,系統是Commodore。 隨后開始在App;IIe上使用Pascal語言,然后是再在穿孔卡片上使用ForTran語言。正在在穿孔卡片上使用ForTran的經歷使他成為一名謹慎小心的開發人員,因為將一組卡片發送到學校的主機並得到返回結果,往往需要一周的往返時間。 Wesley還將一個新聞類從打字機改變為Osborne;1;CP/M計算機。他得到的第一份有酬勞的工作是作為學生輔導員為四年級、五年級和六年級的學生及其父母家講授BASIC編程課程。
高中畢業后,Wesley以加利福尼亞校友學者的身份進入加州大學伯克利分校。 他主修應用數學(計算機科學),輔修音樂(古典鋼琴),並以A級和B級的成績畢業。在學校期間,他先后使用過Pascal、Logo和C語言編寫過程序。 他還參加了一個以錄像帶培訓和心理咨詢為特色的輔導課程。他的暑期實習項目包括以第4代編程語言編寫代碼,並編寫了一個「Getting;Started」用戶手冊。幾年過后,他開始在加州大學聖巴拉拉分校繼續學習,並獲得了計算機科學(分布式系統)的碩士學位。 在此期間,他還講授C編程課程。他的一片以其碩士論文為基礎的論文在第29傑HICSS大會上被提名為最佳論文,其隨后的一個論文版本刊登在新加坡大學High;Performance;Computing雜志上。
自從畢業之后,Wesley就投身於軟件行業,編寫和出版了多本圖書,並且發表了數百篇會議報告和教程。此外還開發了針對公共企業和私有企業培訓的Python課程。 Wesley的Python使用經歷始於Python;1.4版本(當時Python剛剛起步),他使用Python設計了Yahoo!Mail拼寫檢查程序以及地址簿。 他隨后成為Yahoo!People;Search部門的首席工程師。 在離開Yahoo!之后,他寫作了本書第1版,然后開始周游世界。 回來之后,他使用Python編寫過許多程序,包括本地產品搜索程序、反垃圾郵件和防病毒郵件程序、Facebook游戲/應用,以及許多完全不同的其他東西,比如醫生用來進行脊柱骨折分析的軟件。
在其閑暇時間,Wesley喜歡彈鋼琴、打保齡球、打籃球、騎自行車、玩極限飛盤、打撲克、旅行,以及與家人共享人倫。他還是Tutor郵件列表和PyCon這兩個Python用戶組的志願者。他還維護着艾倫帕森斯怪物項目目錄(Alan;Parsons;Project;Monster;Discography)。在本書寫作之時,Wesley是Google的開發大使,為其雲產品背書。Wesley生活在硅谷,您可以通過@wescpy或plus.ly/wescpy來找到他。
目錄
第1部分 通用應用主題
第1章 正則表達式 2 1.1 簡介/動機 3 1.2 特殊符號和字符 5 1.2.1 使用擇一匹配符號匹配多個正則表達式模式 6 1.2.2 匹配任意單個字符 6 1.2.3 從字符串起始或者結尾或者單詞邊界匹配 7 1.2.4 創建字符集 8 1.2.5 限定范圍和否定 8 1.2.6 使用閉包操作符實現存在性和頻數匹配 9 1.2.7 表示字符集的特殊字符 10 1.2.8 使用圓括號指定分組 10 1.2.9 擴展表示法 11 1.3 正則表達式和Python語言 11 1.3.1 re模塊:核心函數和方法 12 1.3.2 使用compile()函數編譯正則表達式 13 1.3.3 匹配對象以及group()和groups()方法 14 1.3.4 使用match()方法匹配字符串 14 1.3.5 使用search()在一個字符串中查找模式(搜索與匹配的對比) 15 1.3.6 匹配多個字符串 16 1.3.7 匹配任何單個字符(.) 16 1.3.8 創建字符集([ ]) 17 1.3.9 重復、特殊字符以及分組 18 1.3.10 匹配字符串的起始和結尾以及單詞邊界 20 1.3.11 使用findall()和finditer()查找每一次出現的位置 21 1.3.12 使用sub()和subn()搜索與替換 22 1.3.13 在限定模式上使用split()分隔字符串 23 1.3.14 擴展符號 24 1.3.15 雜項 27 1.4 一些正則表達式示例 28 1.5 更長的正則表達式示例 33 1.5.1 匹配字符串 35 1.5.2 搜索與匹配……還有貪婪 37 1.6 練習 39
第2章 網絡編程 42 2.1 簡介 43 2.2 客戶端/服務器架構 43 2.2.1 硬件客戶端/服務器架構 43 2.2.2 軟件客戶端/服務器架構 44 2.2.3 銀行出納員作為服務器嗎 44 2.2.4 客戶端/服務器網絡編程 45 2.3 套接字:通信端點 46 2.3.1 套接字 46 2.3.2 套接字地址:主機-端口對 47 2.3.3 面向連接的套接字與無連接的套接字 47 2.4 Python中的網絡編程 48 2.4.1 socket()模塊函數 49 2.4.2 套接字對象(內置)方法 49 2.4.3 創建TCP服務器 51 2.4.4 創建TCP客戶端 54 2.4.5 執行TCP服務器和客戶端 56 2.4.6 創建UDP服務器 58 2.4.7 創建UDP客戶端 59 2.4.8 執行UDP服務器和客戶端 60 2.4.9 socket模塊屬性 61 2.5 *SocketServer模塊 62 2.5.1 創建SocketServer TCP服務器 63 2.5.2 創建SocketServer TCP客戶端 64 2.5.3 執行TCP服務器和客戶端 65 2.6 *Twisted框架介紹 66 2.6.1 創建Twisted Reactor TCP服務器 66 2.6.2 創建Twisted Reactor TCP客戶端 67 2.6.3 執行TCP服務器和客戶端 69 2.7 相關模塊 69 2.8 練習 70
第3章 因特網客戶端編程 74 3.1 因特網客戶端簡介 75 3.2 文件傳輸 75 3.2.1 文件傳輸因特網協議 75 3.2.2 文件傳輸協議 76 3.2.3 Python和FTP 77 3.2.4 ftplib.FTP類的方法 77 3.2.5 交互式FTP示例 78 3.2.6 客戶端FTP程序示例 79 3.2.7 FTP的其他內容 80 3.3 網絡新聞 81 3.3.1 Usenet與新聞組 81 3.3.2 網絡新聞傳輸協議 82 3.3.3 Python和NNTP 83 3.3.4 nntplib.NNTP類方法 83 3.3.5 交互式NNTP示例 84 3.3.6 客戶端程序NNTP示例 85 3.3.7 NNTP的其他內容 89 3.4 電子郵件 90 3.4.1 電子郵件系統組件和協議 90 3.4.2 發送電子郵件 91 3.4.3 Python和SMTP 92 3.4.4 smtplib.SMTP類方法 92 3.4.5 交互式SMTP示例 93 3.4.6 SMTP的其他內容 94 3.4.7 接收電子郵件 94 3.4.8 POP和IMAP 95 3.4.9 Python和POP3 95 3.4.10 交互式POP3示例 96 3.4.11 poplib.POP3類方法 97 3.4.12 客戶端程序SMTP和POP3示例 98 3.4.13 Python和IMAP4 100 3.4.14 交互式IMAP4示例 100 3.4.15 imaplib.IMAP4類中的常用方法 101 3.5 實戰 102 3.5.1 生成電子郵件 102 3.5.2 解析電子郵件 104 3.5.3 基於Web的雲電子郵件服務 105 3.5.4 最佳實踐:安全、重構 106 3.5.5 Yahoo! Mail 108 3.5.6 Gmail 112 3.6 相關模塊 115 3.6.1 電子郵件 115 3.6.2 其他因特網客戶端協議 115 3.7 練習 116
第4章 多線程編程 122 4.1 簡介/動機 123 4.2 線程和進程 124 4.2.1 進程 124 4.2.2 線程 124 4.3 線程和Python 125 4.3.1 全局解釋器鎖 125 4.3.2 退出線程 126 4.3.3 在Python中使用線程 126 4.3.4 不使用線程的情況 126 4.3.5 Python的threading模塊 128 4.4 thread模塊 128 4.5 threading模塊 132 4.5.1 Thread類 133 4.5.2 threading模塊的其他函數 139 4.6 單線程和多線程執行對比 140 4.7 多線程實踐 142 4.7.1 圖書排名示例 142 4.7.2 同步原語 149 4.7.3 鎖示例 149 4.7.4 信號量示例 156 4.8 生產者-消費者問題和Queue/queue模塊 159 4.9 線程的替代方案 162 4.9.1 subprocess模塊 163 4.9.2 multiprocessing模塊 163 4.9.3 concurrent.futures模塊 163 4.10 相關模塊 165 4.11 練習 165
第5章 GUI編程 168 5.1 簡介 169 5.1.1 Tcl、Tk和Tkinter 169 5.1.2 安裝和使用Tkinter 170 5.1.3 客戶端/服務端架構 170 5.2 Tkinter和Python編程 170 5.2.1 Tkinter模塊:添加Tk到應用中 171 5.2.2 GUI編程介紹 171 5.2.3 頂層窗口:Tkinter.Tk() 173 5.2.4 Tk控件 173 5.3 Tkinter示例 174 5.3.1 Label控件 174 5.3.2 Button控件 175 5.3.3 Label和Button控件 175 5.3.4 Label、Button和Scale控件 176 5.3.5 偏函數應用示例 178 5.3.6 中級Tkinter示例 180 5.4 其他GUI簡介 185 5.4.1 Tk接口擴展(Tix) 187 5.4.2 Python MegaWidgets(PMW) 188 5.4.3 wxWidgets和wxPython 188 5.4.4 GTK+和PyGTK 190 5.4.5 Tile/Ttk 192 5.5 相關模塊和其他GUI 194 5.6 練習 196
第6章 數據庫編程 198 6.1 簡介 199 6.1.1 持久化存儲 199 6.1.2 數據庫基本操作和SQL 199 6.1.3 數據庫和Python 201 6.2 Python的DB-API 203 6.2.1 模塊屬性 203 6.2.2 Connection對象 205 6.2.3 Cursor對象 206 6.2.4 類型對象和構造函數 207 6.2.5 關系數據庫 209 6.2.6 數據庫和Python:適配器 210 6.2.7 使用數據庫適配器的示例 210 6.2.8 數據庫適配器示例應用 215 6.3 ORM 226 6.3.1 考慮對象,而不是SQL 227 6.3.2 Python和ORM 227 6.3.3 員工角色數據庫示例 228 6.3.4 SQLAlchemy 229 6.3.5 SQLObject 240 6.4 非關系數據庫 245 6.4.1 NoSQL介紹 245 6.4.2 MongoDB 246 6.4.3 PyMongo:MongoDB和Python 246 6.4.4 總結 250 6.5 相關文獻 250 6.6 練習 252
第7章 Microsoft Office編程 256 7.1 簡介 257 7.2 使用Python進行COM客戶端編程 257 7.2.1 客戶端COM編程 258 7.2.2 入門 258 7.3 入門示例 259 7.3.1 Excel 259 7.3.2 Word 261 7.3.3 PowerPoint 262 7.3.4 Outlook 264 7.4 中級示例 266 7.4.1 Excel 266 7.4.2 Outlook 268 7.4.3 PowerPoint 273 7.4.4 總結 280 7.5 相關模塊/包 281 7.6 練習 281
第8章 擴展Python 286 8.1 簡介和動機 287 8.1.1 Python擴展簡介 287 8.1.2 什麼情況下需要擴展Python 288 8.1.3 什麼情況下不應該擴展Python 288 8.2 編寫Python擴展 289 8.2.1 創建應用代碼 289 8.2.2 根據樣板編寫封裝代碼 291 8.2.3 編譯 296 8.2.4 導入並測試 297 8.2.5 引用計數 300 8.2.6 線程和全局解釋器鎖 301 8.3 相關主題 302 8.3.1 SWIG 302 8.3.2 Pyrex 302 8.3.3 Cython 302 8.3.4 Psyco 303 8.3.5 PyPy 303 8.3.6 嵌入Python 304 8.4 練習 304
第2部分 Web開發
第9章 Web客戶端和服務器 306 9.1 簡介 307 9.1.1 Web應用:客戶端/服務器計算 307 9.1.2 因特網 308 9.2 Python Web客戶端工具 310 9.2.1 統一資源定位符 310 9.2.2 urlparse模塊 312 9.2.3 urllib模塊/包 313 9.2.4 使用urllib2 HTTP驗證的示例 317 9.2.5 將HTTP驗證示例移植到Python 3中 319 9.3 Web客戶端 322 9.3.1 一個簡單的Web爬蟲/蜘蛛/機器人 322 9.3.2 解析Web頁面 328 9.3.3 可編程的Web瀏覽 333 9.4 Web(HTTP)服務器 336 9.5 相關模塊 339 9.6 練習 341
第10章 Web編程:CGI和WSGI 345 10.1 簡介 346 10.2 幫助Web服務器處理客戶端數據 346 10.2.1 CGI簡介 346 10.2.2 CGI應用程序 347 10.2.3 cgi模塊 348 10.2.4 cgitb模塊 348 10.3 構建CGI應用程序 349 10.3.1 構建Web服務器 349 10.3.2 建立表單頁 351 10.3.3 生成結果頁面 352 10.3.4 生成表單和結果頁面 353 10.3.5 全面交互的Web站點 357 10.4 在CGI中使用Unicode 362 10.5 高級CGI 364 10.5.1 mulitipart表單提交和文件上傳 364 10.5.2 多值字段 364 10.5.3 cookie 365 10.5.4 cookie和文件上傳 365 10.6 WSGI簡介 373 10.6.1 動機(替代CGI) 373 10.6.2 服務器集成 374 10.6.3 外部進程 374 10.6.4 WSGI簡介 375 10.6.5 WSGI服務器 376 10.6.6 參考服務器 377 10.6.7 WSGI應用示例 378 10.6.8 中間件及封裝WSGI應用 378 10.6.9 在Python 3中使用WSGI 379 10.7 現實世界中的Web開發 380 10.8 相關模塊 380 10.9 練習 381
第11章 Web框架:Django 384 11.1 簡介 385 11.2 Web框架 385 11.3 Django簡介 386 11.4 項目和應用 390 11.4.1 在Django中創建項目 390 11.4.2 運行開發服務器 393 11.5 「Hello World」應用(一個博客) 394 11.6 創建模型來添加數據庫服務 396 11.6.1 設置數據庫 396 11.6.2 創建表 398 11.7 Python 應用shell 400 11.7.1 在Django中使用Python shell 400 11.7.2 測試數據模型 402 11.8 Django管理應用 403 11.8.1 設置admin 403 11.8.2 使用admin 404 11.9 創建博客的用戶界面 410 11.9.1 創建模板 411 11.9.2 創建URL模式 412 11.9.3 創建視圖函數 415 11.10 改進輸出 418 11.11 處理用戶輸入 422 11.11.1 模板:添加HTML表單 423 11.11.2 添加URLconf項 423 11.11.3 視圖:處理用戶輸入 423 11.11.4 跨站點請求偽造 424 11.12 表單和模型表單 426 11.12.1 Django表單簡介 426 11.12.2 模型表單示例 427 11.12.3 使用ModelForm來生成HTML表單 427 11.12.4 處理ModelForm數據 428 11.13 視圖進階 429 11.14 *改善外觀 431 11.15 *單元測試 432 11.15.1 blog應用的代碼審查 434 11.15.2 blog應用總結 439 11.16 *中級Django應用:TweetApprover 439 11.16.1 創建項目文件結構 440 11.16.2 安裝Twython庫 445 11.16.3 URL結構 446 11.16.4 數據模型 449 11.16.5 提交新推文以便審核 453 11.16.6 審核推文 457 11.17 資源 465 11.18 總結 465 11.19 練習 466
第12章 雲計算:Google App Engine 470 12.1 簡介 471 12.2 雲計算 471 12.2.1 雲計算服務的層次 472 12.2.2 App Engine 473 12.3 沙盒和App Engine SDK 476 12.4 選擇一個App Engine框架 479 12.5 Python 2.7支持 485 12.5.1 一般差異 486 12.5.2 代碼中的差異 486 12.6 與Django比較 487 12.6.1 開始「Hello World」 487 12.6.2 手動創建「Hello World」(Zip文件用戶) 488 12.7 將「Hello World」改成一個 簡單的博客 489 12.7.1 快速發現改動:30秒內將純文本轉成HTML 489 12.7.2 添加表單 490 12.7.3 添加Datastore服務 492 12.7.4 迭代改進 496 12.7.5 開發/SDK控制台 496 12.8 添加Memcache服務 502 12.9 靜態文件 505 12.10 添加用戶服務 505 12.10.1 Google賬號驗證 506 12.10.2 聯合驗證 507 12.11 遠程API shell 507 12.12 問與答(Python實現) 509 12.12.1 發送電子郵件 509 12.12.2 接收電子郵件 510 12.13 使用XMPP發送即時消息 512 12.14 處理圖片 514 12.15 任務隊列(非定期任務) 514 12.15.1 創建任務 515 12.15.2 配置app.yaml 515 12.15.3 其他任務創建選項 516 12.15.4 將發送電子郵件作為任務 517 12.15.5 deferred包 519 12.16 使用Appstats進行分析 520 12.16.1 在app.yaml中添加標准處理程序 521 12.16.2 添加自定義Admin Console頁面 521 12.16.3 作為內置界面啟用界面 521 12.17 URLfetch服務 522 12.18 問與答(無Python實現) 522 12.18.1 Cron服務(計划任務作業) 523 12.18.2 預熱請求 523 12.18.3 DoS保護 524 12.19 廠商鎖定 524 12.20 資源 525 12.21 總結 526 12.22 練習 527
第13章 Web服務 530 13.1 簡介 531 13.2 Yahoo!金融股票報價服務器 531 13.3 Twitter微博 534 13.3.1 社交網絡 534 13.3.2 Twitter和Python 535 13.3.3 稍微長一點的API組合應用示例 537 13.3.4 總結 547 13.3.5 額外在線資源 548 13.4 練習 548
第3部分 補充/實驗章節
第14章 文本處理 553 14.1 逗號分隔值(CSV) 554 14.1.1 CSV簡介 554 14.1.2 再論股票投資組合示例 556 14.2 JSON 557 14.3 可擴展標記語言 561 14.3.1 XML簡介 562 14.3.2 Python和XML 562 14.3.3 XML實戰 566 14.3.4 *使用XML-RPC的客戶端-服務器服務 569 14.4 參考文獻 573 14.5 相關模塊 574 14.6 練習 574
第15章 其他內容 577 15.1 Jython 578 15.1.1 Jython簡介 578 15.1.2 Swing GUI開發示例 579 15.2 Google+ 581 15.2.1 Google+平台簡介 582 15.2.2 Python和Google+API 582 15.2.3 一個簡單的社交媒體分析工具 582 15.3 練習 590
附錄A 部分練習參考答案 593
附錄B 參考表 597 B.1 Python關鍵字 597 B.2 Python標准操作符和函數 598 B.3 數值類型操作符和函數 599 B.4 序列類型操作符和函數 600 B.5 字符串格式化操作符轉換符號 602 B.6 字符串格式化操作符指令 603 B.7 字符串類型內置方法 603 B.8 列表類型內置方法 605 B.9 字典類型內置方法 605 B.10 集合類型操作符和內置函數 606 B.11 文件對象方法和數據屬性 607 B.12 Python異常 608 B.13 類的特殊方法 610 B.14 Python操作符匯總 612 附錄C Python 3:一種編程語言進化的產物 614 C.1 為何Python在變化 614 C.2 都發生了哪些變化 615 C.2.1 print變成了print() 615 C.2.2 字符串:默認為Unicode編碼 616 C.2.3 單類類型 616 C.2.4 更新異常的語法 617 C.2.5 整數的更新 618 C.2.6 迭代器無處不在 619 C.3 遷移工具 619 C.3.1 2to3工具 619 C.3.2 Python 2.6+ 620 C.4 結論 620 C.5 參考資料 620
附錄D 利用Python 2.6+向Python 3遷移 622 D.1 Python 3:Python的下一代 622 D.2 整數 623 D.2.1 單整數類型 624 D.2.2 新型二進制和改進的八進制字符 624 D.2.3 經典除法或真除法 625 D.3 內置函數 626 D.3.1 print語句或print()函數 626 D.3.2 reduce()轉移到了functools模塊中 627 D.3.3 其他更新 627 D.4 面向對象編程:兩種不同的類對象 628 D.5 字符串 629 D.6 異常 630 D.6.1 處理異常(使用as) 630 D.6.2 拋出異常 630 D.7 其他轉換工具和技巧 631 D.8 編寫兼容版本2.x和3.x的代碼 632 D.8.1 對比print和print() 632 D.8.2 將你的方法導入解決方案中 633 D.8.3 整合在一起 634 D.9 結論 635
序
很高興各位讀者能夠允許我們來幫助你們盡可能快、盡可能深入地學習Python。Core;Python系列圖書的目標不只是教會開發人員Python語言,我們還希望各位讀者能夠形成足夠的知識庫,從而能夠開發任何應用領域的軟件。
在我們其他的Core;Python系列圖書中(Core;Python;Programming和Core;Python;Language;Fundamentals),我們不僅向讀者講授Python語言的語法,還希望讀者能夠深入掌握Python的運行機制。我們相信,在具備了這些知識之后,無論您是Python語言的初學者還是具有一定經驗的老兵,您都能夠開發出更為高效的Python應用程序。
詳細資料
- ISBN:9787115414779
- 規格:635頁 / 普通級 / 1-1
- 出版地:大陸
|
|
|
| 作者:林佳禾 (策畫主編) 出版社:衛城出版 出版日期:2020-05-20 66折: $ 277 | | 作者:菊池洋匡 出版社:大是文化有限公司 出版日期:2022-08-31 66折: $ 238 | | 作者:休斯 出版社:大是文化有限公司 出版日期:2024-03-27 66折: $ 277 | | 作者:段張取藝 出版社:任性出版有限公司 出版日期:2022-03-29 66折: $ 257 | |
|
| 作者:森島コン 出版社:未來數位有限公司 出版日期:2024-10-30 $ 237 | | 作者:詹姆斯.克利爾 出版社:方智出版 出版日期:2019-06-01 $ 260 | | $ 234 | | 作者:加藤スス 出版社:東立出版社 出版日期:2024-10-30 $ 119 | |
|
| 作者:十一 出版社:北京億森同創文化 出版日期:2024-10-24 $ 59 | | 作者:西條陽 出版社:台灣角川股份有限公司 出版日期:2024-11-06 $ 190 | | $ 130 | | 作者:十一 出版社:北京億森同創文化 出版日期:2024-10-24 $ 59 | |
|
|
|
|