本書是一部系統論述 Python編程語言、 OOP編程思想以及函數式編程思想的立體化教程(含圖書、答疑服務、教學課件、源代碼及視頻教程)。全書共分為四篇:*篇 Python基礎(第 1章 ~第 8章),第二篇 Python進階(第 9章 ~第 15章),第三篇 Python高級實用庫與框架(第 16章 ~第 20章),第四篇項目實戰(第 21章 ~第 24章)。主要內容包括開篇綜述、搭建開發環境、*個 Python程序、Python語法基礎、 Python編碼規范、數據類型、運算符、控制語句、數據結構、函數式編程、面向對象編程、異常處理、常用模塊、正則表達式、文件操作與管理、數據交換格式、數據庫編程、網絡編程、 wxPython圖形用戶界面編程、Python多線程編程、項目實戰 1 網絡爬蟲與爬取股票數據、項目實戰 2 數據可視化與股票數據分析、項目實戰 3 PetStore寵物商店項目、項目實戰 4 開發 Python版 QQ2006聊天工具。
為便于讀者高效學習,快速掌握 Python編程方法,本書作者精心制作了完整的教學課件、完整的源代碼與豐富的配套視頻教程,并提供在線答疑服務。
本書是PyCharm廠家JetBrains公司官方推薦用書!贈送教學課件24章,源代碼24章,教學視頻2500分鐘!并提供實時在線答疑服務。本書是一本真正的Python百科全書,內容全面涵蓋編程入門、語法基礎、科學計算、爬蟲技術,涵蓋300的示例源碼。一本立體化教程。贈送學習視頻教程:所有購買本書的讀者均可獲贈約50小時(約3000分鐘)的Python從小白到大牛全集視頻課程:
(1)Python從小白到大牛*篇Python基礎:352分鐘。
(2)Python從小白到大牛第二篇進階:621分鐘。
(3)Python從小白到大牛第三篇高級實用庫與框架:664分鐘。
(4)Python從小白到大牛第四篇項目實戰1網絡爬蟲與抓取股票數據:193分鐘。
(5)Python從小白到大牛第四篇項目實戰2數據可視化與股票數據分析:79分鐘。
(6)Python從小白到大牛第四篇項目實戰3PetStore寵物商店項目:309分鐘。
(7)Python從小白到大牛第四篇項目實戰4開發Python版QQ2006聊天工具:272分鐘。
(8)師傅帶徒弟學Python游戲開發引擎cocos2d-Python:202分鐘。
(9)Python從小白到大牛第四篇項目實戰5迷失航線游戲開發:300分鐘。
推薦序
人類社會從古至今發展到現在已是日新月異,科技正在為這個世界勾勒更加絢麗的未來,這其中離不開人類與計算機之間溝通的技術。憑借一行行的代碼、一串串的字符,人類與計算機的交流不再困難重重、不再受到空間的阻隔,計算機語言也隨著時代的發展越發體現出魅力。
JetBrains致力于為開發者打造智能的開發工具,讓計算機語言交流也能夠輕松自如。歷經 15年的不斷創新,JetBrains始終在不斷完善其平臺,以滿足最頂尖的開發需要。
在全球, JetBrains平臺備受數百萬開發者的青睞,應用于各行各業,見證著它們的創新與突破。在 JetBrains平臺上,我們始終追求為開發者簡化復雜項目的目標,利用
JetBrains平臺自動完成項目中簡單的部分,讓開發者能夠最大程度地專注于代碼的設計和全局的構建。
JetBrains提供一流的工具來幫助開發者打造完美的代碼。為了展現每一種語言的獨特性,我們的 IDE(集成開發環境)致力于為開發者提供如下產品: Java (IntelliJ
IDEA)、C/C (CLion)、 Python
(PyCharm)、PHP (PhpStorm)、NET跨平臺 (ReSharper, Rider),并提供相關的團隊項目追蹤、代碼審查工具等。不僅如此, JetBrains還創造了自己的語言 Kotlin,讓程序的邏輯和含義更加清晰。
與此同時, JetBrains還為開源項目、教育行業和社區提供了獨特的免費版本。這些版本不僅適用于專業的開發者,滿足相關的開發需求,而且能夠使初學者易于上手,由淺入深地使用計算機語言進行交互溝通。
2018年,JetBrains將同清華大學出版社一起,策劃一套涉及上述產品與技術的高水平圖書,也希望通過這套書,更廣泛地讓讀者體會到 JetBrains平臺協助編程的無窮魅力。期待更多的讀者能夠高效開發,發揮出最大的創造潛力。
讓未來在你的指尖跳動!
JetBrains大中華區市場經理趙磊
Python語言自誕生至今經歷了將近 30年時間,但是在前 20年里,國內使用 Python進行軟件開發的程序員并不多,而在近 5年的時間里,人們對 Python語言的關注度迅速提升。這并不僅僅是因為 Python語言非常優秀,而是當下科學計算、人工智能、大數據和區塊鏈等新技術的發展需要。Python語言具有豐富的動態特性、簡單的語法結構和面向對象的編程特點,并擁有成熟而豐富的第三方庫,因此適合于很多領域的軟件和硬件開發。
本書是智捷課堂開發的立體化叢書中的一本,所謂立體化圖書就是指包含書籍、視頻、課件和服務等內容。智捷課堂將廣大讀者當作衣食父母,不僅為讀者提供圖書,還提供配套視頻、教學課件及答疑服務。
本書服務網址
為了更好地為廣大讀者提供服務,我們專門為本書建立了一個服務網址 http://www.zhijieketang.
com/group/8,希望讀者對書中內容發表評論和勘誤,提出寶貴意見。
源代碼
書中包含了 300多個完整的案例項目源代碼,大家可以到本書網站
http://www. zhijieketang.com/group/8免費注冊并下載。
我們的聯系方式
作者微博:@tony_關東升。
郵箱:eorient@sina.com。
智捷課堂在線課堂:www.zhijieketang.com。
智捷課堂微信公共號:zhijieketang。
讀者服務 QQ群:628808216。
致謝
本書主要由關東升撰寫。此外,智捷課堂團隊的趙志榮、趙大羽、關錦華、閆婷嬌、王馨然、關秀華、劉佳笑和趙浩丞也參與了部分內容的編寫。感謝趙浩丞手繪了書中全部草圖,并從專業的角度修改書中圖片,力求更加真實完美地呈現給廣大讀者。感謝清華大學出版社的盛東亮編輯給我們提出了寶貴的意見。感謝我的家人容忍我的忙碌,以及對我的關心和照顧,使我能抽出這么多時間,投入全部精力專心編寫此書。由于時間倉促,書中難免存在不妥之處,敬請讀者諒解并提出寶貴意見。
關東升 2018年 6月
本書配套資源
1.源代碼及教學課件
所有購買本書的讀者均可獲得完整的配套源代碼及教學課件,獲取資源地址為 http://www.
zhijieketang.com/group/8。
2.學習視頻教程
所有購買本書的讀者均可獲贈 40多小時(約 2500分鐘)的 Python從小白到大牛實踐視頻課程,包括:
(1)Python從小白到大牛第一篇 Python基礎:352分鐘。
(2)Python從小白到大牛第二篇 Python進階:621分鐘。
(3)Python從小白到大牛第三篇 Python高級實用庫與框架:664分鐘。
(4)Python從小白到大牛第四篇項目實戰 1網絡爬蟲與爬取股票數據:193分鐘。
(5)Python從小白到大牛第四篇項目實戰 2數據可視化與股票數據分析:79分鐘。
(6)Python從小白到大牛第四篇項目實戰 3PetStore寵物商店項目:309分鐘。
(7)Python從小白到大牛第四篇項目實戰 4開發 Python版
QQ2006聊天工具: 272分鐘。
說明:上述課程為智捷課堂正在熱銷課程,定價 598.00元人民幣,讀者購買本書后,憑書中夾帶的學習卡的代金卡號到 zhijieketang.com網站購買該課程,自購買之日起三個月內有效。視頻課程學習地址為 http://www.zhijieketang.com/classroom/10/courses。
代金卡號使用具體說明:首先在智捷課堂視頻平臺( www.zhijieketang.com)注冊并登錄,然后找到相應課程,接著選擇頁面中的【購買課程】【去支付】【輸入優惠碼】【使用】即可。
關東升:一個在IT領域摸爬滾打20多年的老程序員、培訓師、作者。精通多種IT技術。參與設計和開發北京市公交一卡通大型項目,開發國家農產品追溯系統、金融系統微博等移動客戶端項目,并在App Store發布多款游戲和應用軟件。 近期為中國移動、中國聯通、南方航空、中石油、工商銀行、平安銀行和天津港務局等企事業單位授課。著有《iOS開發指南》《從零開始學Swift》《Android網絡游戲開發實戰》《Cocos2d-x實戰》系列和《Kotlin從小白到大牛》等40多本計算機書籍。
推薦序 .1
前言 .3
本書配套資源 .5
本書學習路線圖 7
第一篇 Python基礎
第 1章開篇綜述 2
1.1 Python語言歷史 3
1.2 Python語言設計哲學Python之禪 . 3
1.3 Python語言特點 4
1.4 Python語言應用前景 . 5
1.5 如何獲得幫助. 6
第 2章搭建開發環境 7
2.1 搭建 Python環境 7
2.2 PyCharm開發工具 . 9
2.3 Eclipse PyDev開發工具 12
2.4 Visual Studio Code開發工具 18
2.5 文本編輯工具. 21
本章小結. 21
第 3章第一個 Python程序 22
3.1 使用 Python Shell實現. 22
3.2 使用 PyCharm實現 24
3.3 使用 Eclipse PyDev插件實現 . 27
3.4 使用 Visual Studio Code實現. 29
3.5 文本編輯工具 Python解釋器實現 31
3.6 代碼解釋 32
本章小結. 33
第 4章 Python語法基礎 34
4.1 標識符和關鍵字 . 34
4.2 變量和常量 35
4.3 注釋 . 36
4.4 語句 . 36
4.5 模塊 . 37
4.6 包 . 39
本章小結. 40
第 5章 Python編碼規范 41
5.1 命名規范 41
5.2 注釋規范 42
5.3 導入規范 46
5.4 代碼排版 47
本章小結. 50
第 6章數據類型 . 51
6.1 數字類型 51
6.2 數字類型相互轉換 . 53
6.3 字符串類型 54
本章小結. 61
第 7章運算符. 62
7.1 算術運算符 62
7.2 關系運算符 64
7.3 邏輯運算符 65
7.4 位運算符 66
7.5 賦值運算符 68
7.6 其他運算符 69
7.7 運算符優先級. 71
本章小結. 72
第 8章控制語句 . 73
8.1 分支語句 73
8.2 循環語句 76
8.3 跳轉語句 78
8.4 使用范圍 80
本章小結. 81
第二篇 Python進階
第 9章數據結構. 84
9.1 元組 . 84
9.2 列表 . 89
9.3 集合 . 94
9.4 字典 . 97
本章小結. 102
第 10章函數式編程 . 103
10.1 定義函數 103
10.2 函數參數 104
10.3 函數返回值 106
10.4 函數變量作用域 . 108
10.5 生成器 109
10.6 嵌套函數 .111
10.7 函數式編程基礎 . 112
本章小結. 115
第 11章面向對象編程 116
11.1 面向對象概述 . 116
11.2 面向對象三個基本特性 116
11.3 類和對象 117
11.4 封裝性 123
11.5 繼承性 127
11.6 多態性 129
11.7 Python根類object 132
11.8 枚舉類 134
本章小結. 136
第 12章異常處理. 137
12.1 異常問題舉例. 137
12.2 異常類繼承層次 . 138
12.3 常見異常 139
12.4 捕獲異常 142
12.5 異常堆棧跟蹤. 147
12.6 釋放資源 148
12.7 自定義異常類. 151
12.8 顯式拋出異常. 151
本章小結. 152
第 13章常用模塊. 153
13.1 math模塊 . 153
13.2 random模塊 . 155
13.3 datetime模塊 . 156
13.4 logging日志模塊 163
本章小結. 168
第 14章正則表達式 . 169
14.1 正則表達式字符串 . 169
14.2 字符類 171
14.3 量詞 174
14.4 分組 176
14.5 re模塊 180
14.6 編譯正則表達式 . 183
本章小結. 188
第 15章文件操作與管理 189
15.1 文件操作 189
15.2 os模塊 . 193
15.3 os.path模塊 194
本章小結. 196
第三篇 Python高級實用庫與框架
第 16章數據交換格式 . 198
16.1
CSV數據交換格式. 199
16.2 XML數據交換格式 201
16.3 JSON數據交換格式 . 207
16.4 配置文件 212
本章小結. 214
第 17章數據庫編程 . 215
17.1 數據持久化技術概述 215
17.2
MySQL數據庫管理系統 215
17.3
17.4 案例:MySQL數據庫 CRUD操作 227
17.5 NoSQL數據存儲 234
本章小結. 235
第 18章網絡編程. 236
18.1
網絡基礎 236
18.2 TCP Socket低層次網絡編程 238
18.3 UDP Socket低層次網絡編程 243
18.4 訪問互聯網資源 . 247
本章小結. 250
第 19章 wxPython圖形用戶界面編程. 251
19.1
Python圖形用戶界面開發工具包. 251
19.2
wxPython安裝 . 251
19.3
wxPython基礎 . 252
19.4 事件處理 257
19.5 布局管理 260
19.6 wxPython控件 . 268
19.7 高級窗口 277
19.8 使用菜單 284
19.9 使用工具欄 286
本章小結. 288
第 20章 Python多線程編程 289
20.1
基礎知識 289
20.2 threading模塊 290
20.3
創建線程 291
20.4 線程管理 294
20.5 線程安全 297
20.6 線程間通信 301
本章小結. 306
第四篇項目實戰
第 21章項目實戰 1:網絡爬蟲與爬取股票數據 308
21.1
網絡爬蟲技術概述 . 308
21.2 爬取數據 311
21.3 分析數據 319
21.4 項目實戰:爬取納斯達克股票數據 323
第 22章項目實戰 2:數據可視化與股票數據分析 334
22.1
使用 Matplotlib繪制圖表. 334
22.2 項目實戰:納斯達克股票數據分析 343
第 23章項目實戰 3:PetStore寵物商店項目 352
23.1
系統分析與設計 . 352
23.2 任務 1:創建數據庫. 359
23.3 任務 2:初始化項目. 360
23.4 任務 3:編寫數據持久層代碼 361
23.5 任務 4:編寫表示層代碼 .
368
23.6 任務 5:發布可執行文件 .
386
第 24章項目實戰 4:開發 Python版 QQ2006聊天工具 . 390
24.1 系統分析與設計 . 390
24.2 任務 1:創建服務器端數據庫 395
24.3 任務 2:初始化項目. 397
24.4 任務 3:編寫服務器端數據持久層.
397
24.5 任務 4:客戶端 UI實現. 400
24.6 任務 5:用戶登錄過程實現 409
24.7 任務 6:刷新好友列表 . 415
24.8 任務 7:聊天過程實現 . 419
24.9 任務 8:用戶下線 423