Python項目開發實戰( 簡體 字) | |
作者:[美]Laura Cassell,Alan Gauld 著 | 類別:1. -> 程式設計 -> Python |
譯者:高弘揚 衛瑩 譯 | |
出版社:清華大學出版社 | 3dWoo書號: 42655 詢問書籍請說出此書號! 有庫存 NT售價: 300 元 |
出版日:10/1/2015 | |
頁數:324 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787302415879 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章Python核心知識回顧 1
1.1探索Python語言和解釋器 1 1.2回顧Python數據類型 3 1.2.1數值類型:整數和浮點數 4 1.2.2布爾類型 5 1.2.3None類型 6 1.2.4容器類型 6 1.2.5字符串 7 1.2.6字節和字節數組 9 1.2.7元組 10 1.2.8列表 11 1.2.9字典 12 1.2.10集 13 1.3使用Python控制結構 15 1.3.1結構化你的程序 15 1.3.2使用序列、塊和注釋 16 1.3.3選擇一個執行路徑 17 1.3.4迭代 18 1.3.5異常處理 20 1.3.6上下文管理 21 1.4在Python中讀取和輸出數據 21 1.4.1與用戶交互 21 1.4.2使用文本文件 23 1.5擴展Python 24 1.5.1定義并使用函數 24 1.5.2定義并使用類和對象 28 1.6創建和使用模塊和包 32 1.6.1使用和創建模塊 33 1.6.2使用和創建包 34 1.7創建示例包 35 1.8使用第三方包 42 1.9本章小結 43 第2章Python腳本 47 2.1訪問操作系統 48 2.1.1獲得關于用戶和他們的電腦的信息 49 2.1.2獲得當前進程信息 52 2.1.3管理其他程序 54 2.1.4更加高效地管理子進程 57 2.1.5獲取文件(和設備)的信息 60 2.1.6瀏覽和操縱文件系統 62 2.1.7探索目錄樹深度 68 2.2使用日期和時間 71 2.2.1使用time模塊 71 2.2.2datetime模塊介紹 74 2.2.3calendar模塊介紹 75 2.3處理常見的文件格式 76 2.3.1使用逗號分隔的數值 76 2.3.2使用Config文件 82 2.3.3操作XML和HTML文件 85 2.4使用ctypes和pywin32訪問原生API 93 2.4.1訪問操作系統庫 94 2.4.2使用COM訪問Windows應用 96 2.5涉及多應用的自動化任務 97 2.5.1使用Python 98 2.5.2使用操作系統工具 98 2.5.3使用數據文件 98 2.5.4使用第三方模塊 98 2.5.5通過命令行接口與子進程交互 99 2.5.6為基于服務器的應用使用Web服務 99 2.5.7使用一個原生代碼API 99 2.5.8使用GUI機器人學 99 2.6本章小結 100 第3章管理數據 103 3.1使用Python存儲數據 104 3.1.1使用DBM作為持久化字典 104 3.1.2使用Pickle存取對象 109 3.1.3使用shelve訪問對象 111 3.2使用Python分析數據 116 3.2.1使用Python的內置特性分析數據 116 3.2.2使用itertools分析數據 119 3.2.3使用itertools分析LendyDB數據 124 3.3使用SQL管理數據 126 3.3.1關系型數據庫的概念 126 3.3.2結構化查詢語言 127 3.3.3跨表鏈接數據 134 3.3.4多對多關系 140 3.4從LendyDB遷移到SQL 數據庫 143 3.4.1從Python訪問SQL 143 3.4.2創建LendyDBSQL數據庫 145 3.4.3插入測試數據 146 3.4.4創建一個LendyDBAPI 148 3.5探索其他數據管理選擇 154 3.5.1主從數據庫 154 3.5.2NoSQL 155 3.5.3云計算 155 3.5.4使用RPy進行數據分析 156 3.6本章小結 157 第4章創建桌面應用 161 4.1組織應用程序 162 4.2創建命令行界面 163 4.2.1創建數據層 163 4.2.2創建核心邏輯層 165 4.2.3創建用戶界面 169 4.3使用cmd模塊創建命令行界面 173 4.4讀取命令行參數 175 4.5用一些對話框讓命令行界面變得生動 176 4.6使用Tkinter編程GUI 180 4.7創建簡單的GUI 183 4.8創建Tic-Tac-ToeGUI 186 4.8.1勾勒一個UI設計 186 4.8.2創建菜單 187 4.8.3創建Tic-Tac-Toe面板 188 4.8.4將GUI連接到游戲 189 4.9擴展Tkinter 194 4.9.1使用tix 194 4.9.2使用ttk 198 4.10再次回顧借出庫 199 4.11探索其他PythonGUI工具包 207 4.11.1wxPython 207 4.11.2PyQt 208 4.11.3PyGTK 209 4.11.4原生GUI:Cocoa和PyWin32 209 4.11.5Dabo 210 4.12存儲本地數據 210 4.12.1存儲特定于應用的數據 211 4.12.2存儲用戶選擇偏好 211 4.12.3存儲應用狀態 212 4.12.4記錄錯誤信息 212 4.13理解本地化 214 4.13.1使用區域設置 214 4.13.2在Python中使用Unicode 216 4.13.3使用gettext 218 4.14本章小結 220 第5章Python在Web中的應用 223 5.1Python在Web中的應用 224 5.1.1Web應用的組成部分 225 5.1.2客戶端-服務器關系 226 5.1.3中間件和MVC 226 5.1.4HTTP方法和頭信息 227 5.1.5什么是API 230 5.2使用Python進行Web編程 234 5.3有關Python和Web的更多知識 247 5.3.1靜態網站生成器 247 5.3.2Web框架 247 5.4使用Python跨網工作 248 5.4.1XML-RPC 248 5.4.2套接字服務器 249 5.5更多Python網絡編程的樂趣 252 5.6本章小結 253 第6章Python在更大項目中的應用 255 6.1使用doctest模塊測試 256 6.2使用unittest模塊測試 261 6.3Python中的測試驅動開發 265 6.4調試Python代碼 266 6.5工作在更大的Python項目中 275 6.6發布Python包 279 6.7本章小結 281 第7章探索Python前沿技術 283 7.1使用Python繪圖 283 7.1.1使用turtlegraphics 284 7.1.2使用GUICanvas對象 284 7.1.3繪制數據 284 7.1.4使用imghdr 285 7.1.5Pillow簡介 285 7.1.6試試ImageMagick 285 7.2使用Python輔助科學 286 7.2.1SciPy簡介 286 7.2.2使用Python輔助生物科學 287 7.2.3使用GIS 287 7.2.4處理語言 287 7.2.5綜述 288 7.3使用Python開發游戲 288 7.3.1增強PyGame經驗 288 7.3.2探索其他選項 289 7.4進入電影領域 289 7.5與其他語言集成 290 7.5.1Jython 291 7.5.2IronPython 291 7.5.3Cython 292 7.5.4Tcl/Tk 292 7.6進入物理領域 293 7.6.1serial選項介紹 293 7.6.2RaspberryPi編程 294 7.6.3與Arduino對話 294 7.6.4探索其他選項 294 7.7創建Python 295 7.7.1修復bug 295 7.7.2文檔化 295 7.7.3測試 295 7.7.4添加特性 296 7.7.5參加會議 296 7.8本章小結 296 附錄A練習答案 299 附錄BPython標準模塊 315 附錄C可用Python資源 323 通過實際項目增強你的Python技能
通過理論和實踐的結合以及實際可操作的指導,本書將為你呈現真實世界中的Python編程。書中的實際教程聚焦于功能,覆蓋了基本的創建應用、構建和封裝庫。同時在有經驗的Python教員一直為你提供有價值的見解的幫助下,你可以超越教程并開始創建項目。讀者應該熟悉核心Python語言的基礎語法,并準備增強自己的技能,這樣才能在這門頂級編程語言的實際應用中成為專家。 主要內容 ◆ 學習Python如何在真實世界中完成日常任務并提高業務效率 ◆ 了解庫的工作原理、在何處獲取和使用它們 ◆ 使用Virtualenv、Pip和更多工具建立開發環境 ◆ 創建、封裝并與Python社區中的其他用戶分享庫 ◆ 使用分層次的方法創建項目,并使用庫在每次迭代中添加功能 ◆ 在真實世界的中級項目中使用Python,以便獲得在更大開源項目中使用它的信心 在某年的一次會議后,發到PyLadies組織者郵件列表的一封郵件問:“有人有興趣寫一本Python方面的書嗎?”當時,我已經考慮撰寫一本編程書很久了。在多年教課以及在PyLadies和其他編程聚會做指導之后,我意識到需要一本新的、特定類型的編程書。但是我并沒有馬上回復那封郵件。我知道寫一本書是一項巨大的工程(確實是!),會耗費我大量的時間和精力。我在周末和節假日也要工作(是的,我又對了!)。我也知道我有一份教授編程課程的全職工作,同時也是喬治亞州亞特蘭大本地PyLadies的主要組織者。我的孩子也會開始問我:“這個周末你要寫書嗎?”
以上內容都是真實的(實際上比我最初的想法還要多),但是我知道書籍很重要。非常多的學生會在課后問我:“現在我已經了解Python基礎知識了,我能做些什么呢?”我的答案總是:“你可以參與一些開源項目!”或者“參加一些Python高級課程”。但是這些答案既不能讓他們滿意也不能讓我滿意。正確答案應該是:“你必須真正地尋找一些事情來做:解決一個問題或實現一個需求”。這是因為,真正理解編程和一門編程語言的唯一方式就是用這門語言去解決問題。 然而,另一個問題又出現了:“我沒有真正需要解決的問題”。所以,雖然我可以讓我的學生去了解開源項目,而這實際上也非常有幫助,但是如果不了解技術,他們可能會迷失,甚至放棄。這樣社區就又失去了一位可能帶來有趣東西的程序員。所以,在與家人和朋友做大量交流之后,我意識到需要撰寫這本書。 本書目的 多年以來,一直有人問我們,“我在熟悉Python基礎后能做些什么?”,“我能學到什么?”,“我該何去何從?”。解決以上問題就是撰寫本書的目的所在。 對于編程書籍來說,很多人都曾經歷過的一個長期問題是它們都是從語言基礎到深層概念。這些概念只有擁有計算機科學學位的人才能理解。但這并不酷!編程的大門應該向任何有興趣的人敞開。我們都應該致力于降低編程的門檻。我們覺得Python做到了這一點,但是我們需要更進一步,并且開始理解人們是如何學習抽象想法和概念的,幫助他們學習編程。 可以將編程想象成學習如何蓋房子,只知道需要木料,但是不知道如何用木料蓋房子。你仍然需要理解結構工程、電氣、水管設施、通風、高壓交流電(High Voltage Alternating Current,HVAC)等。編程也是一樣。語言只解釋了蓋房子需要木料。還有很多與木料相關的東西。我們希望幫助你了解這些概念。 本書讀者對象 本書并不適合想要學習Python的初學者。實際上,作為本書的讀者,你需要擁有一些Python編程基礎。這意味著你已經學過一些教程。你也應該理解空格在Python中的作用、列表被包含在方括號([])中、但字典被包含在花括號({})中。本書適用于那些初學者,但應該已經學過一兩個教程。這些人理解Python基礎,但對Python可以實現的功能很感興趣。 俗語說的好,需要是發明之母。在你學習編程時,這句話非常正確。如果你需要軟件來執行特定函數或任務,那么圍繞著需求學習一門語言就很容易。你有需求,語言就會幫助你,學習語言,解決問題,你學到了知識,并且立即付諸實踐。這太棒了!然而,如果你覺得編程很有趣,但卻沒有需求,不知道要實現什么,結果會怎樣呢?這就是本書要解決的問題。 本書會幫助你學習大部分人不會對初學者講述的Python部分。書中涉及的大部分工具和技術只有在實踐中才會遇到。然而,對于沒有特定問題需要解決的新手程序員來說,學習這些工具可能比較困難。在很長一段時間里,沒有人想要向開發者介紹這些工具,因為它們真的很常用。我們希望可以帶你領略Python的能力和輝煌。 你將學習如何編寫一個Web應用,以及如何使用Python庫與數據庫通信。如果你是一名系統管理員,還可以學到可以加速工作流的系統工具。我們將簡要介紹諸如安全和最佳實踐的話題,概述如何使用Python庫創建圖形用戶界面(GUI)。還將介紹如何編寫和使用應用編程接口(Application Programming Interfaces,API),以及其他對Python程序員有用的話題。 本書內容簡介 我們希望帶你簡要了解一下Python的基礎知識,將向你介紹那些只有在解決問題時才會理解的概念。盡管我們不能在這里呈現所有將來可能需要解決的問題,但是我們希望可以為Python新手展示Python語言的強大特性和可以使用的包和技術。 首先,提供一個Python的速成課程,以防你已經忘記了所有東西。我們將復習基礎知識,然后你可以決定是否完整閱讀該章。接下來,將從腳本語言的角度來重新審視Python。通過嘗試使用Python編寫一些小腳本來訪問你的系統。這可以展示Python讓你所擁有的非常基本的能力。之后會討論數據,這其實就是編程的一切——操縱數據。你會使用Python提供的標準庫來完成一些示例。我們甚至會討論數據庫,這樣就可以對它有一個基本了解。我們想讓你了解并接觸系統中可能會接觸到的每個部分。 在前三章之后,將介紹桌面應用。盡管這些在Python中并不常用,但也是語言的一個特性。在你的整個Python程序員的生涯中它都非常有用。接下來將介紹Internet。這時,Python會充當數據通信工具。你將學習有關HTTP和Web的所有知識,以及網站在底層的工作方式,甚至會動手編寫和使用API。很多新手程序員對API都很迷惑。我們希望在本章揭開它神秘的面紗。 在最后幾章,將介紹Python中一些更高級的話題,例如,如何在更大的項目中使用Python、調試代碼、創建測試模塊、錯誤處理,以及創建自定義的異常和異常處理器。你在使用本書時、在將來查閱本書時、在使用Python編程時,都可以使用索引快速找到你想要的內容。 本書信息量很大,其中包含大量的工具和想法,可幫助你開始使用Python。我們希望你可以自己動手嘗試,并且花時間在你感興趣的概念和想法上做更多功課。在本書中,已經包含了大量實踐練習來幫助你嘗試新概念。在大多數章節中,還包含了一些挑戰性問題,以幫助你鞏固新知識。 使用本書須知 為了更好地使用本書,建議你所使用的現代計算機能夠運行Python 3.3或更新版本,有一個能夠舒適使用的好的文本編輯器,具有Internet連接(本書一些部分會使用),以及足夠的耐心和求知欲。我們也建議你使用Internet搜索任何遇到的問題。專業程序員實際上并不是什么都會。他們通常只知道那些每天需要處理的問題,他們的大部分時間都花在搜索和追蹤問題發生的原因上。不要覺得依賴Google解決問題是很讓人沮喪的。有時,使用Google搜索問題的能力和你的編程能力是同樣重要的。 在使用本書的示例和項目時,你可能需要源代碼。示例的源文件可以通過Wrox網站www.wrox.com/go/pythonprojects和http://www.tupwk.com.cn/downpage下載。 源代碼 在完成本書示例時,可以選擇手動輸入所有代碼,也可以使用本書附帶的源代碼。本書中用到的所有源代碼都可以從www.wrox.com下載。對于本書,源代碼下載的具體位置在www.wrox.com/go/pythonprojects的Download Code選項卡下。 可以在www.wrox.com搜索本書的ISBN(本書的ISBN是978-1-118-90866-2)來尋找代碼。www.wrox.com/dynamic/books/download.aspx上列出了當前所有Wrox書籍的完整代碼下載列表。 www.wrox.com上的大部分代碼是使用.ZIP、.RAR或適用于當前平臺的類似壓縮格式壓縮的。下載之后,使用合適的解壓縮工具解壓即可。 勘誤表 盡管我們已經盡了各種努力來保證文章或代碼中不出現錯誤,但是錯誤總是難免的,如果你在本書中找到了錯誤,例如拼寫錯誤或代碼錯誤,請告訴我們,我們將非常感激。通過勘誤表,可以讓其他讀者避免受挫,當然,這還有助于提供更高質量的信息。 要在網站上找到本書的勘誤表,可以登錄http://www.wrox.com,通過Search工具或書名列表查找本書,然后在本書的細目頁面上,單擊Book Errata鏈接。在這個頁面上可以查看Wrox編輯已提交和粘貼的所有勘誤項。完整的圖書列表還包括每本書的勘誤表,網址是www.wrox.com/misc-pages/ booklist.shtml。 如果在Book Errata頁面上沒有看到你找出的錯誤,請進入www.wrox.com/contact/ techsupport.shtml,填寫表單,發電子郵件,我們就會檢查你的信息,如果是正確的,就在本書的勘誤表中粘貼一個消息,我們將在本書的后續版本中采用。 p2p.wrox.com P2P郵件列表是為作者和讀者之間的討論而建立的。讀者可以在p2p.wrox.com上加入P2P論壇。該論壇是一個基于Web的系統,用于傳送與Wrox圖書相關的信息和相關技術,與其他讀者和技術用戶交流。該論壇提供了訂閱功能,當論壇上有新帖子時,會給你發送你選擇的主題。Wrox作者、編輯和其他業界專家和讀者都會在這個論壇上進行討論。 在http://p2p.wrox.com上有許多不同的論壇,幫助讀者閱讀本書,在讀者開發自己的應用程序時,也可以從這個論壇中獲益。要加入這個論壇,必須執行下面的步驟: (1) 進入http://p2p.wrox.com,單擊Register鏈接。 (2) 閱讀其內容,單擊Agree按鈕。 (3) 提供加入論壇所需的信息及愿意提供的可選信息,單擊Submit按鈕。 (4) 然后就可以收到一封電子郵件,其中的信息描述了如何驗證賬戶,完成加入過程。 加入論壇后,就可以發送新信息,回應其他用戶的帖子。可以隨時在Web上閱讀信息。如果希望某個論壇給自己發送新信息,可以在論壇列表中單擊該論壇對應的Subscribe to this Forum圖標。 對于如何使用Wrox P2P的更多信息,可閱讀P2P FAQ,了解論壇軟件的工作原理,以及許多針對P2P和Wrox圖書的常見問題解答。要閱讀FAQ,可以單擊任意P2P頁面上的FAQ鏈接。 |