發表於2024-12-29
目 錄
第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和PyWin32 209
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。我們希望你可以自己動手嘗試,並且花時間在你感興趣的概念和想法上做更多功課。在本書中,已經包含瞭大量實踐練習來幫助你嘗試新概念。在大多數章節中,還包含瞭一些挑戰性問題,以幫助你鞏固新知識。
使用本書須知
為瞭更好地使用本書,建議你所使用的現代計算機能夠運行Python 3.3或更新版本,有一個能夠舒適使用的好的文本編輯器,具有Internet連接(本書一些部分會使用),以及足夠的耐心和求知欲。我們也建議你使用Internet搜索任何遇到的問題。專業程序員實際上並不是什麼都會。他們通常隻知道那些每天需要處理的問題,他們的大部分時間都花在搜索和追蹤問題發生的原因上。不要覺得依賴Google解決問題是很讓人沮喪的。有時,使用Google搜索問題的能力和你的編程能力是同樣重要的。
在使用本書的示例和項目時,你可能需要源代碼。示例的源文件可以通過Wrox網站和下載。
源代碼
在完成本書示例時,可以選擇手動輸入所有代碼,也可以使用本書附帶的源代碼。本書中用到的所有源代碼都可以從下載。對於本書,源代碼下載的具體位置在的Download Code選項卡下。
可以在搜索本書的ISBN(本書的ISBN是978-1-118-90866-2)來尋找代碼。上列齣瞭當前所有Wrox書籍的完整代碼下載列錶。
上的大部分代碼是使用.ZIP、.RAR或適用於當前平颱的類似壓縮格式壓縮的。下載之後,使用閤適的解壓縮工具解壓即可。
勘誤錶
盡管我們已經盡瞭各種努力來保證文章或代碼中不齣現錯誤,但是錯誤總是難免的,如果你在本書中找到瞭錯誤,例如拼寫錯誤或代碼錯誤,請告訴我們,我們將非常感激。通過勘誤錶,可以讓其他讀者避免受挫,當然,這還有助於提供更高質量的信息。
要在網站上找到本書的勘誤錶,可以登錄,通過Search工具或書名列錶查找本書,然後在本書的細目頁麵上,單擊Book Errata鏈接。在這個頁麵上可以查看Wrox編輯已提交和粘貼的所有勘誤項。完整的圖書列錶還包括每本書的勘誤錶,網址是 booklist.shtml。
如果在Book Errata頁麵上沒有看到你找齣的錯誤,請進入 techsupport.shtml,填寫錶單,發電子郵件,我們就會檢查你的信息,如果是正確的,就在本書的勘誤錶中粘貼一個消息,我們將在本書的後續版本中采用。
p2p.wrox.com
P2P郵件列錶是為作者和讀者之間的討論而建立的。讀者可以在p2p.wrox.com上加入P2P論壇。該論壇是一個基於Web的係統,用於傳送與Wrox圖書相關的信息和相關技術,與其他讀者和技術用戶交流。該論壇提供瞭訂閱功能,當論壇上有新帖子時,會給你發送你選擇的主題。Wrox作者、編輯和其他業界專傢和讀者都會在這個論壇上進行討論。
在上有許多不同的論壇,幫助讀者閱讀本書,在讀者開發自己的應用程序時,也可以從這個論壇中獲益。要加入這個論壇,必須執行下麵的步驟:
(1) 進入,單擊Register鏈接。
(2) 閱讀其內容,單擊Agree按鈕。
(3) 提供加入論壇所需的信息及願意提供的可選信息,單擊Submit按鈕。
(4) 然後就可以收到一封電子郵件,其中的信息描述瞭如何驗證賬戶,完成加入過程。
加入論壇後,就可以發送新信息,迴應其他用戶的帖子。可以隨時在Web上閱讀信息。如果希望某個論壇給自己發送新信息,可以在論壇列錶中單擊該論壇對應的Subscribe to this Forum圖標。
對於如何使用Wrox P2P的更多信息,可閱讀P2P FAQ,瞭解論壇軟件的工作原理,以及許多針對P2P和Wrox圖書的常見問題解答。要閱讀FAQ,可以單擊任意P2
Python項目開發實戰 下載 mobi epub pdf txt 電子書 格式
Python項目開發實戰 下載 mobi pdf epub txt 電子書 格式 2024
Python項目開發實戰 下載 mobi epub pdf 電子書快遞員不錯。每次都發短信提前通知
評分紙張不錯,內容單薄
評分很好的東西,很實用,嗚哈哈哈,好好好,厲害瞭!!
評分不錯,京東快遞就是快,書不錯喲,應該是正版
評分書的質量不錯哦,很滿意噠,還沒有看呢,不過還是有很大期待的
評分很不錯的一本書,希望自己能把理論應用到實踐中,編程之路還很漫長哈
評分618買的,非常實惠,python學得多,項目學得少,同步推
評分不錯,挺好的,很不錯,很好
評分學習到瞭很多!很有用的書!
Python項目開發實戰 mobi epub pdf txt 電子書 格式下載 2024