|
-- 會員 / 註冊 --
|
|
|
|
Python開發技術大全 ( 簡體 字) |
作者:吳仲治 編著 | 類別:1. -> 程式設計 -> Python |
譯者: |
出版社:機械工業出版社 | 3dWoo書號: 53148 詢問書籍請說出此書號!【有庫存】 NT售價: 745 元 |
出版日:7/1/2020 |
頁數:545 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787111661528 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: Python作為一門編程語言,有30多年的歷史了。其熱度在最近幾年迅速攀升,究其原因,除了因為該語言具有簡潔、容易上手的特點外,還因為它在人工智能、數據處理和爬蟲等多個領域提供了非常優秀的開發庫。這些優秀的Python庫極大地擴展了Python的應用領域,并且使得Python逐步成為這些領域的首要開發語言。本書兼顧Python的語法知識和Python在各個領域的應用實例,不但能夠讓讀者快速入門,而且可以讓讀者比較全面地掌握Python編程中的一些高級主題。
筆者將多年的知識積累和務實的工作經驗濃縮成這本書,奉獻給千千萬萬學習Python編程的人。本書包含大量的代碼實例,涉及Python語言的方方面面。本書講解深入淺出、通俗易懂,將抽象的概念用典型實例淺顯直白地進行了講解。本書涉及的內容繁多,不但全面涵蓋Python語言的基礎語法,而且涵蓋多線程、多進程、Redis、容器、爬蟲、Flask框架、圖形界面應用和數據處理等諸多高級主題。不論哪方面的內容,本書都強調實戰,而絕不囿于示意與演示。讀者學到的將會是緊跟時代發展的技術,是完全可以在實際工作中直接使用的開發知識。相信借助本書,你的Python學習之旅一定會成為一種難忘的體驗。
本書特色
1.內容全面、實用,講解詳略得當,章節安排符合學習者的認知規律
本書全面涵蓋Python編程的相關知識,所講解的內容非常注重實用性和可操作性。書中對必須掌握的細節絕不吝惜筆墨,都是通過真實的代碼演示各個知識點;而對僅需要大致了解的內容也絕不浪費紙張,這使得圖書的整體結構緊湊,內容重點突出。這樣的安排能夠幫助讀者快速上手,并且將精力重點放在培養解決實際問題的能力上。這種由淺入深、循序漸進的講授方式完全遵循和尊重學習者尤其是初學者對軟件開發的認知規律。
2.涵蓋大量生動有趣的實例,幫助讀者深刻理解所學知識
本書中的每個章節都包含一些生動有趣的實例,通過人們在生活中經常碰到的一些例子來演示Python編程的知識點。這些例子都是我們在學習其他編程語言時經常會碰到的一些經典實例,例如如何讓3種動物安全過河、漢諾塔問題和背包問題等。筆者在書中詳細介紹了這些例子的編碼實現過程,并對一些重點和難點問題做了分析。
在介紹Python知識時,筆者的講授絕不是那種死板教條的模式,而是從一個程序員的視角對這些知識進行生動有趣、通俗易懂的講解。這猶如一位編程伙伴陪伴你在Python主題公園中游玩,讓你在不知不覺中就對Python編程有了全面的了解,幫助你在較短的時間內成為Python編程達人。全面閱讀本書后,你將會發現整個學習過程并不痛苦,而且還非常有趣。
3.涉及面很廣,不僅適合Python初學者,也適合Python進階者
本書從最基本的Python語言歷史和Python基礎語法開始講解,逐步深入到諸如類、多線程、多進程、容器、爬蟲和數據處理等高級話題,不僅適合Python初學者學習,讓他們快速跨入Python編程的大門,而且適合Python進階開發者閱讀,讓他們全面掌握Python編程涉及的高級話題,解決實際應用開發過程中碰到的種種難題。
本書內容
第1篇 Python編程基礎(第1∼8章)
第1章從Python的歷史入手,介紹Python的版本、Python語言的特點及Python開發需要的基礎知識,掌握這些內容可以為后續章節的學習打好基礎。
第2章介紹整型、浮點數、字符串、布爾型、列表、元組、集合和字典等Python定義的基本數據類型,以及這些數據類型的運算操作。我們將會在后續章節中使用這些基本數據類型構造自己的數據類型。
第3章介紹函數的定義和使用、函數參數的使用、常見的系統自帶函數,以及lambda函數和遞歸等方面的內容。
第4章介紹模塊和包的概念與定義,另外還介紹第三方Python包的各種安裝方法。
第5章介紹文件操作的方方面面,包括打開文件、讀寫文件、文件模式和with語句的使用等。
第6章介紹正則表達式、數學庫、時間庫、日期庫、二叉樹、串行化、隨機數等常用模塊,這些模塊涵蓋了Python開發過程中的基礎內容。
第7章介紹如何捕捉異常、得到異常信息、忽略某些異常、拋出異常、自定義異常對象,以及異常處理在Python 2和Python 3中的異同,最后介紹常見的系統定義異常。
第8章介紹類及其屬性和方法、類的派生方法、多重派生的使用等內容。通過類可以定義自己的類型,從而可以不僅僅使用系統定義的類型。
第2篇 Python編程高級主題(第9∼21章)
第9章介紹線程的概念和特點、使用線程類創建和停止線程、線程同步、線程安全等內容。通過使用線程,程序可以獲得并發能力。
第10章介紹進程的概念和特點、使用進程類創建和停止進程、查看進程狀態、在進程之間共享數據、同步進程及協調進程的運行等內容。通過進程可以使用其他可執行文件提高代碼的性能。
第11章介紹迭代器和生成器的概念,以及如何使用迭代器節省系統資源,如何操作生成器獲得期望的數據等。
第12章介紹裝飾器的起源、裝飾函數與被裝飾函數的參數、常用裝飾器的用法等。
第13章介紹如何處理csv文件、yaml文件和json文件等。這些都是常見的數據文件格式,可以使用它們保存數據,也可將其用于不同程序之間的數據交換。
第14章介紹軟件測試的概念、PyUnit和Pytest的使用、生成測試報告、產生覆蓋率數據、運行自動化測試用例、共享測試腳手架等內容。程序代碼必須經過測試才可以發布,借助測試框架可以大幅度提升代碼的質量。
第15章介紹網絡編程的概念、socket接口、UDP客戶端程序的編寫、UDP服務器程序的編寫、TCP客戶端程序的編寫、TCP服務器程序的編寫、socket的屬性控制等。通過本章的學習,可以編寫出基于TCP/IP協議的網絡應用程序。
第16章介紹容器的概念、容器鏡像的下載、容器實例的啟動、容器實例的查看、容器鏡像的創建、容器鏡像的發布、通過kubernetes發布應用等。通過本章的學習,可以使用自己編寫的Python代碼完成基于容器的運維工作。
第17章介紹爬蟲的概念、爬蟲的工作原理、Scrapy框架的安裝和使用、通過過濾器來提取感興趣的內容、配置Scrapy并爬取指定范圍的頁面、將爬取的數據保存成所希望的文件格式、使用模板、以交互式運行爬蟲等。通過本章的學習,可以掌握從互聯網上爬取各種有用數據的方法。
第18章介紹Python的Web開發框架Flask的工作原理、路由、通用參數和模板的使用等。通過本章的學習,能夠構造自己的Web服務器,并提供REST服務或Web服務。
第19章介紹Redis鍵值數據庫的概念、Redis服務器的搭建、Redis客戶端庫、元操作、字符串操作、哈希數據的操作、列表和集合的操作、訂閱機制、時效設置等內容。通過本章的學習,可以搭建Redis服務器,操作Redis服務器上的數據,并通過Redis服務器進行數據交換。
第20章介紹Tkinter、wxPython、PyQt等圖形界面庫的使用,以及如何使用這些庫提供的元素,另外還介紹圖片的使用、用戶操作事件的處理等內容。通過本章的學習,可以編寫出自己的圖形界面程序。
第21章介紹matplotlib的使用、各種統計數據圖的生成、NumPy數據處理、NumPy金融應用、使用NumPy進行傅里葉變換、使用NumPy訓練神經網絡等。通過本章的學習,可以編寫出各種處理工程數據的程序,還可以訓練自己的神經網絡。
配書資源
本書涉及的所有實例源代碼文件及其他相關資源需要讀者自行下載。請在華章公司的網站www.hzbook.com上搜索到本書,然后單擊“資料下載”按鈕,即可在本書頁面上找到配書資源下載鏈接。
讀者對象
* Python初學者與進階者;
* Python從業人員;
* Python編程愛好者;
* 互聯網產品開發人員;
* 數據運維人員;
* 數據清洗與分析人員;
* 數據庫管理人員;
* 桌面應用開發人員;
* 高校計算機等專業的學生;
* 培訓機構的學員。
本書作者
本書由吳仲治編寫。筆者是一個擁有近30年軟件開發經驗的老兵,使用過Fortran、Pascal、Perl、C/C++、C#和Java等高級語言,在電信、互聯網、云計算等領域有豐富的開發經驗。近十年筆者逐步轉到Python開發,目前正在享受Python帶來的快速開發體驗,以及Python在各領域的各種庫所帶來的便捷。作為一個Python語言的深度用戶,筆者愿意將自己多年的Python開發經驗分享給廣大Python編程愛好者,以幫助他們快速成長。
本書涉及的內容比較龐雜,而且Python技術也是日新月異,加之編者水平和成書時間所限,書中難免存有一些疏漏和不當之處,敬請指正。閱讀本書時若有疑問,請發E-mail。 |
內容簡介:本書從Python語言的基礎語法講起,逐步深入到Python的各種庫,而且還介紹了這些庫的實戰案例,并重點介紹了爬蟲開發、UI應用程序開發、容器管理、Redis數據庫操作,以及數據處理和神經網絡等相關內容。讀者閱讀完本書,不但可以系統地學習Python編程的相關知識,而且還能對Python在各個領域的應用有更加深入的理解。
本書共21章,分為2篇。第1篇為“Python編程基礎”,涵蓋的主要內容有Python語言基礎、基本數據類型、函數、模塊和包、文件操作、基礎庫、異常處理、類和對象;第2篇為“高級主題”,涵蓋的主要內容有多線程、多進程、迭代器和生成器、裝飾器、數據文件操作、軟件測試、網絡編程、容器操作、Scrapy爬蟲框架、Flask Web開發框架、鍵值數據庫Redis、圖形界面應用和數據處理。
本書內容豐富,講解通俗易懂,案例豐富,實用性強,特別適合Python語言的入門讀者和進階讀者閱讀,也適合自動化測試人員和自動運維人員閱讀。另外,本書也適合作為相關培訓機構的教材使用。
全面:不但涵蓋Python基礎語法,而且也涵蓋多線程、多進程、Redis、容器、爬蟲、Flask框架、圖形界面、數據處理等諸多高級主題。
新穎:緊跟技術趨勢,介紹當前在實際工作中常用的Python主流技術和新技術。
實用:非常注重知識的實用性和可操作性,通過大量的代碼實例帶領讀者學習。
詳細:不但對知識點做了詳細介紹,而且還對實例代碼做了詳細注釋。
易懂:配合實例,用通俗易懂的語言將抽象的知識用淺顯直白的方式進行講解。
有趣:通過日常生活中經常會碰到的一些趣味實例演示Python編程的相關知識。
配書資源獲取方式
本書涉及的源代碼等配書資料需要讀者自行下載,請參考前言中的具體介紹。 |
目錄:前言 第1篇 Python編程基礎 第1章 Python語言基礎 2 1.1 Python語言介紹 2 1.2 Python版本介紹 3 1.2.1 Python語言的版本 3 1.2.2 Python的實現版本 4 1.3 集成開發環境 9 1.3.1 PyCharm 9 1.3.2 Anaconda 10 1.4 代碼的運行方式 17 1.5 網頁運行方式 19 1.6 基本語法 23 1.7 Python之禪 26 第2章 基本數據類型 28 2.1 整數類型 28 2.1.1 整數的表示法 28 2.1.2 數值運算 29 2.1.3 位運算 31 2.1.4 移位運算 33 2.1.5 類型轉換 34 2.1.6 其他進制表示法 35 2.1.7 小整數池 39 2.1.8 統計成績的例子 40 2.1.9 韓信點兵的故事 41 2.2 布爾類型 42 2.2.1 布爾運算 42 2.2.2 類型轉換 44 2.2.3 例子:誰在說謊 44 2.3 字節流 46 2.4 浮點數 50 2.4.1 基本運算 51 2.4.2 其他運算 52 2.4.3 類型轉換 53 2.4.4 例子:求某個數的平方根 53 2.5 列表 54 2.5.1 列表特性 55 2.5.2 常見操作 56 2.5.3 找出丟失的數 60 2.5.4 背包問題 61 2.6 字符串 63 2.6.1 str類型的字符串 64 2.6.2 str類型的相關接口函數 64 2.6.3 bytes類型 68 2.6.4 str類型和bytes類型的轉換 69 2.7 元組 70 2.7.1 元組的表示法 70 2.7.2 元組接口函數 71 2.8 集合 72 2.8.1 創建集合 72 2.8.2 基本操作 73 2.8.3 例子:刪除重復元素 79 2.9 字典 80 2.9.1 創建字典 81 2.9.2 基本操作 81 2.9.3 例子:合并結果 86 2.9.4 例子:如何安全過河 87 2.10 NoneType類型 94 2.11 變量、對象和值的關系 94 第3章 函數 99 3.1 函數的定義和使用 99 3.2 函數的返回值 100 3.3 函數的參數 100 3.3.1 位置參數 101 3.3.2 將位置參數當作元組 101 3.3.3 調用時使用元組和列表 103 3.3.4 關鍵字參數 104 3.3.5 將實參當作字典 104 3.3.6 調用時使用字典 105 3.3.7 默認值 105 3.4 常見的系統自帶函數 106 3.4.1 數據對象有關的函數 106 3.4.2 數學計算有關的函數 109 3.4.3 容器類型有關的函數 111 3.4.4 屬性操作 116 3.5 lambda函數 117 3.6 遞歸調用 118 3.6.1 遞歸調用介紹 118 3.6.2 例子 119 第4章 模塊和包 126 4.1 模塊 126 4.2 包 128 4.3 軟件包的安裝 129 4.3.1 復制源代碼到系統目錄 129 4.3.2 使用PIP進行安裝 130 4.3.3 使用easy_install和setup進行安裝 134 第5章 文件操作 135 5.1 文件的基本操作 135 5.2 打開文件 136 5.3 文件對象的操作 137 5.4 關閉文件 142 5.5 特殊文件 143 5.6 文件對象的屬性 145 第6章 基礎庫 146 6.1 正則表達式庫 146 6.1.1 元字符和語法 147 6.1.2 C風格接口函數 154 6.1.3 面向風格接口函數 155 6.1.4 re.Match對象 155 6.2 數學庫 157 6.3 時間庫 159 6.3.1 時間表示法 159 6.3.2 接口函數 160 6.4 日期庫 162 6.5 二叉樹庫 162 6.6 串行化庫 164 6.6.1 基本流程 164 6.6.2 pickle用法 165 6.7 隨機數庫 166 6.7.1 生成隨機整數和隨機實數 167 6.7.2 其他形式的隨機 169 6.7.3 偽隨機問題 170 6.7.4 例子:計算面積 171 6.7.5 游戲:五對胡 172 第7章 異常處理 177 7.1 Python中的異常處理 177 7.1.1 捕捉異常 177 7.1.2 沒有異常才執行的分支 180 7.1.3 無論有無異常都要執行的分支 181 7.2 拋出異常 182 7.3 常見的系統定義異常 183 第8章 類和對象 187 8.1 類的定義和實例創建 187 8.2 類的屬性 189 8.3 初始化函數和銷毀函數 190 8.4 實例對象的屬性 192 8.4.1 類屬性和實例對象屬性的關系 192 8.4.2 self在類定義中表示當前對象 194 8.4.3 通過delattr()、setattr()等接口函數來操作屬性 196 8.5 靜態方法 198 8.6 類方法 199 8.7 訪問控制 199 8.8 只讀屬性 200 8.8.1 使用@property修飾符 200 8.8.2 重新定義__setattr__()函數 201 8.9 類屬性的安全檢查 202 8.10 派生類 203 8.11 多重繼承 204 第2篇 Python編程高級主題 第9章 多線程 208 9.1 線程介紹 208 9.2 Python中的線程 209 9.2.1 主線程 209 9.2.2 線程狀態 209 9.3 thread包 210 9.3.1 線程的啟動 211 9.3.2 線程的退出 212 9.4 threading包 213 9.4.1 創建線程實例對象 213 9.4.2 派生自己的線程類 216 9.4.3 配置線程 217 9.4.4 啟動線程 218 9.4.5 停止線程 219 9.4.6 等待線程結束 220 9.4.7 其他接口函數 221 9.5 線程同步 222 9.5.1 線程鎖thread.Lock 223 9.5.2 線程鎖threading.Lock 224 9.5.3 可重入鎖threading.RLock 225 9.5.4 條件變量threading.Condition 227 9.5.5 信號量threading.Semaphore 228 9.5.6 事件threading.Event 231 9.6 線程安全 233 9.7 死鎖 236 第10章 多進程 239 10.1 進程的概念 239 10.2 subprocess模塊 240 10.2.1 面向過程的接口函數 241 10.2.2 Popen類 244 10.3 multiprocessing模塊 247 10.3.1 創建進程 247 10.3.2 進程的屬性 249 10.3.3 進程的接口函數 253 10.3.4 進程池 258 10.3.5 進程通信 260 10.4 os模塊 265 10.4.1 啟動進程——system() 265 10.4.2 啟動進程并得到輸出——popen () 265 10.4.3 得到當前進程ID——getpid () 266 10.4.4 得到父進程ID——getppid () 266 第11章 迭代器和生成器 268 11.1 迭代器 268 11.2 生成器 269 11.2.1 定義生成器 270 11.2.2 接口函數 270 第12章 裝飾器 275 12.1 起源 275 12.2 被裝飾函數帶有參數 276 12.3 裝飾函數帶有參數 279 12.4 裝飾函數帶有返回值 280 12.5 使用多個裝飾器 281 12.6 常用裝飾器 282 12.6.1 類裝飾器 282 12.6.2 退出時執行的函數 284 12.6.3 單例模式 284 12.6.4 執行時間限制 285 12.6.5 執行時間標定 286 12.6.6 自動重新運行 287 12.6.7 狀態機 288 第13章 數據文件操作 293 13.1 csv文件的處理 293 13.2 yaml文件的處理 296 13.3 json文件的處理 298 第14章 軟件測試 301 14.1 無框架的測試 301 14.2 PyUnit測試框架 305 14.2.1 運行方式 307 14.2.2 生成測試報告 309 14.2.3 測試步驟 312 14.2.4 斷言 317 14.2.5 測試用例的接口函數 328 14.2.6 覆蓋率 330 14.3 Pytest測試框架 333 14.3.1 測試用例 333 14.3.2 選擇執行的測試用例 335 14.3.3 生成測試報告 339 14.3.4 測試步驟 341 14.3.5 斷言 345 14.3.6 覆蓋率 346 14.3.7 插件 349 第15章 網絡編程 357 15.1 TCP/IP協議介紹 357 15.2 socket介紹 361 15.3 TCP echo服務器 363 15.4 簡單的TCP客戶端 364 15.5 UDP版的echo服務器 365 第16章 容器操作 367 16.1 Docker的安裝 367 16.2 Docker的基本概念 369 16.3 docker-py庫 370 16.3.1 建立連接 370 16.3.2 對Docker鏡像的操作 371 16.3.3 運行Docker鏡像 377 16.4 kubernetes庫 379 第17章 Scrapy爬蟲框架 388 17.1 Scrapy的安裝 388 17.2 工作原理 390 17.3 一個簡單的例子 391 17.4 Scrapy的架構圖 393 17.5 爬蟲 395 17.5.1 點贊統計例子 395 17.5.2 爬蟲類 396 17.6 一個完整的項目 398 17.7 結果數據 400 17.8 選擇器 402 17.8.1 介紹 403 17.8.2 text() 404 17.8.3 extract()/extract_first() 405 17.8.4 @屬性 406 17.8.5 元素[@屬性] 406 17.9 設置 407 17.9.1 命令行方式 407 17.9.2 爬蟲范圍內的設置 408 17.9.3 項目范圍內的設置 408 17.9.4 命令默認設定 409 17.9.5 全局默認設定 409 17.9.6 讀取配置 411 17.9.7 常用配置 412 17.10 命令行工具 414 17.10.1 創建項目 414 17.10.2 創建爬蟲 415 17.10.3 列出爬蟲模板 416 17.10.4 查看某個爬蟲模板 417 17.10.5 基于模板創建爬蟲 418 17.10.6 啟動爬蟲 418 17.10.7 爬蟲列表 419 17.10.8 爬取指定頁面 420 17.10.9 在瀏覽器中顯示頁面 421 17.10.10 啟動交互式shell 422 17.10.11 runspider 423 17.10.12 標定Scrapy的性能 424 17.10.13 其他命令 425 17.11 爬取北京公交線路數據 426 第18章 Flask Web開發框架 429 18.1 Flask的安裝 429 18.2 最簡單的Flask應用 430 18.3 路由 430 18.3.1 動態路由 431 18.3.2 限定類型 432 18.3.3 地址尾部的“/” 433 18.4 運行應用的參數 435 18.5 命令行方式運行 436 18.6 HTTP的方法 437 18.7 靜態文件 437 18.8 模板 438 18.8.1 變量 439 18.8.2 表達式 440 18.8.3 子模板 442 第19章 鍵值數據庫Redis 444 19.1 介紹 444 19.2 服務器的安裝 445 19.2.1 服務器容器下載 446 19.2.2 啟動Redis容器 446 19.3 Python客戶端的安裝 448 19.4 元操作 448 19.5 字符串數據的操作 449 19.6 哈希數據的操作 456 19.7 列表數據的操作 458 19.8 集合數據的操作 460 19.9 訂閱發布 462 19.9.1 基本用法 462 19.9.2 訂閱多個頻道 465 19.9.3 頻道使用通配符 466 19.10 設置時效 467 19.11 管道模式 467 第20章 圖形界面應用 469 20.1 Tk和Tkinter 469 20.1.1 基本程序結構 470 20.1.2 常用組件 471 20.1.3 布局 487 20.1.4 游戲2048 489 20.2 wxPython 494 20.2.1 程序基本結構 494 20.2.2 基本用戶界面元素 495 20.3 PyQt 508 20.3.1 基本程序結構 508 20.3.2 常用組件 509 20.4 小結 517 第21章 數據處理 518 21.1 matplotlib 518 21.2 NumPy 526 21.2.1 ndarray的構造 526 21.2.2 ndarray的一些屬性 531 21.2.3 ndarray的一些操作 532 21.2.4 NumPy在金融領域的應用 534 21.2.5 NumPy中的傅里葉變換 537 21.2.6 神經網絡應用 541 |
序: |
|