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