Python項目開發實戰

Python項目開發實戰
定價:359
NT $ 312
 

內容簡介

通過理論和實踐的結合以及實際可操作的指導,《Python項目開發實戰》將為你呈現真實世界中的Python編程。書中的實際教程聚焦於功能,覆蓋了基本的創建應用、構建和封裝庫。

同時在有經驗的Python教員一直為你提供有價值的見解的幫助下,教程並開始創建項目。讀者應該熟悉核心Python語言的基礎語法,並准備增強自己的技能,這樣才能在這門編程語言的實際應用中成為專家。

Laura Cassell是Py Ladies Atlanta的開創者。她在Big Nerd Ranch教授Python和JavaScript。她現在是New Relic公司Python組的一位工程師主管。

Alan Gauld是電信和客戶服務行業的一位企業架構設計師。從1998年他就開始使用Python。他是python-tutor郵件列表中的版主和積極參與者。
 

目錄

第1章 Python核心知識回顧 1
1.1 探索Python語言和解釋器 1
1.2 回顧Python數據類型 3
1.2.1 數值類型:整數和浮點數 4
1.2.2 布爾類型 5
1.2.3 None類型 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.2 datetime模塊介紹 74
2.2.3 calendar模塊介紹 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 創建LendyDB SQL數據庫 145
3.4.3 插入測試數據 146
3.4.4 創建一個LendyDB API 148
3.5 探索其他數據管理選擇 154
3.5.1 主從數據庫 154
3.5.2 NoSQL 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—Toe GUI 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 探索其他Python GUI工具包 207
4.11.1 wxPython 207
4.11.2 PyQt 208
4.11.3 PyGTK 209
4.11.4 原生GUI:Cocoa和PyWin32209
4.11.5 Dabo 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.1 Python在Web中的應用 224
5.1.1 Web應用的組成部分 225
5.1.2 客戶端—服務器關系 226
5.1.3 中間件和MVC 226
5.1.4 HTTP方法和頭信息 227
5.1.5 什麼是API 230
5.2 使用Python進行Web編程 234
5.3 有關Python和Web的更多知識 247
5.3.1 靜態網站生成器 247
5.3.2 Web框架 247
5.4 使用Python跨網工作 248
5.4.1 XML—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.3 Python中的測試驅動開發 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 使用turtle graphics 284
7.1.2 使用GUI Canvas對象 284
7.1.3 繪制數據 284
7.1.4 使用imghdr 285
7.1.5 Pillow簡介 285
7.1.6 試試ImageMagick 285
7.2 使用Python輔助科學 286
7.2.1 SciPy簡介 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.1 Jython 291
7.5.2 IronPython 291
7.5.3 Cython 292
7.5.4 Tcl/Tk 292
7.6 進入物理領域 293
7.6.1 serial選項介紹 293
7.6.2 RaspberryPi編程 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
附錄B Python標准模塊 315
附錄C 可用Python資源 323
 

在某年的一次會議后,發到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。我們希望你可以自己動手嘗試,並且花時間在你感興趣的概念和想法上做更多功課。在本書中,已經包含了大量實踐練習來幫助你嘗試新概念。在大多數章節中,還包含了一些挑戰性問題,以幫助你鞏固新知識。
  
使用本書須知
為了更好地使用本書,建議你所使用的現代計算機能夠運行Python3.3或更新版本,有一個能夠舒適使用的好的文本編輯器,具有Internet連接(本書一些部分會使用),以及足夠的耐心和求知欲。我們也建議你使用Internet搜索任何遇到的問題。專業程序員實際上並不是什麼都會。他們通常只知道那些每天需要處理的問題,他們的大部分時間都花在搜索和追蹤問題發生的原因上。不要覺得依賴Google解決問題是很讓人沮喪的。有時,使用Google搜索問題的能力和你的編程能力是同樣重要的。
源代碼
(2)閱讀其內容,單擊Agree按鈕。
(3)提供加入論壇所需的信息及願意提供的可選信息,單擊Submit按鈕。
(4)然后就可以收到一封電子郵件,其中的信息描述了如何驗證賬戶,完成加入過程。
  
加入論壇后,就可以發送新信息,回應其他用戶的帖子。可以隨時在Web上閱讀信息。如果希望某個論壇給自己發送新信息,可以在論壇列表中單擊該論壇對應的Subscribe to this Forum圖標。
  
對於如何使用WroxP2P的更多信息,可閱讀P2PFAQ,了解論壇軟件的工作原理,以及許多針對P2P和Wrox圖書的常見問題解答。要閱讀FAQ,可以單擊任意P2P頁面上的FAQ鏈接。
網路書店 類別 折扣 價格
  1. 新書
    87
    $312