Python編程入門(mén)與實(shí)戰(zhàn)
定 價(jià):119.8 元
- 作者:[意]法布里奇奧·羅馬諾(Fabrizio Romano)
- 出版時(shí)間:2022/2/1
- ISBN:9787115548122
- 出 版 社:人民郵電出版社
- 中圖法分類(lèi):TP311.561
- 頁(yè)碼:414
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
這是一本Python入門(mén)書(shū),本書(shū)的特色之一是在介紹Python編程的基礎(chǔ)知識(shí)之后,通過(guò)具體編程范例,分不同的主題來(lái)闡釋如何用Python語(yǔ)言高效編程,在幫助讀者夯實(shí)基礎(chǔ)的同時(shí)找到最佳解決方案,達(dá)到學(xué)以致用的目的。
本書(shū)內(nèi)容由淺入深,從理論到實(shí)踐,首先介紹Python編程的基本知識(shí)和編程范例,然后介紹如何進(jìn)行性能優(yōu)化、有效調(diào)試以及如何控制程序的流程。此外,本書(shū)還講解了Python中的加密服務(wù)和安全令牌等知識(shí)。通過(guò)學(xué)習(xí)本書(shū),讀者將對(duì)Python語(yǔ)言有一定的了解。本書(shū)能夠幫助讀者掌握如何編寫(xiě)程序、構(gòu)建網(wǎng)站以及利用Python著名的數(shù)據(jù)科學(xué)庫(kù)來(lái)處理數(shù)據(jù)等內(nèi)容。本書(shū)涵蓋各種類(lèi)型的應(yīng)用程序,可幫助讀者根據(jù)所學(xué)的知識(shí)解決真實(shí)世界中的問(wèn)題。
Python 編程入門(mén)的精煉指南,用python 3.7 進(jìn)行數(shù)據(jù)科學(xué)和web開(kāi)發(fā);
提供本書(shū)源代碼和書(shū)中彩圖文件下載。
Python 是一種極其靈活和強(qiáng)大的編程語(yǔ)言,適用于多個(gè)領(lǐng)域。本書(shū)并沒(méi)有對(duì) Python 的基礎(chǔ)知識(shí)進(jìn)行過(guò)多講解,而是對(duì)其實(shí)用性進(jìn)行了透徹的介紹,從而幫助讀者熟悉并使用該語(yǔ)言。
你將首先了解 Python 的基礎(chǔ)知識(shí),為接下來(lái)的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ),并學(xué)習(xí)Python 編程基礎(chǔ),即如何操控 Python以實(shí)現(xiàn)想要的效果。你還將探索不同的編程用法,找到解決特定問(wèn)題的理想方法,理解如何實(shí)現(xiàn)程序性能優(yōu)化,學(xué)習(xí)有效調(diào)試、控制程序的執(zhí)行流,并使用一種交換格式對(duì)數(shù)據(jù)進(jìn)行交換。此外,你還將學(xué)習(xí) Python 的加密服務(wù),理解安全標(biāo)記的概念。
本書(shū)將幫助你透徹理解 Python 語(yǔ)言,學(xué)習(xí)如何編寫(xiě)程序、創(chuàng)建網(wǎng)站,并利用數(shù)據(jù)科學(xué)庫(kù)對(duì)數(shù)據(jù)進(jìn)行操作。本書(shū)還配備了一些實(shí)例,涵蓋了各種不同的應(yīng)用類(lèi)型,并在全書(shū)最后引導(dǎo)你根據(jù)所學(xué)知識(shí)創(chuàng)建一個(gè)實(shí)際項(xiàng)目。
主要內(nèi)容:
獲取 Python,并在 Windows、macOS 和 Linux 上安裝運(yùn)行;
使用數(shù)據(jù)結(jié)構(gòu)和控制流,探索編程的基本概念;編寫(xiě)優(yōu)雅、可復(fù)用、高效的代碼;
理解什么時(shí)候適合使用過(guò)程式編程,什么時(shí)候適合使用面向?qū)ο缶幊蹋∣OP);
學(xué)習(xí)并發(fā)執(zhí)行的基礎(chǔ)知識(shí);
通過(guò)編寫(xiě)測(cè)試,創(chuàng)建安全可靠的軟件;
用 Django 創(chuàng)建簡(jiǎn)單的網(wǎng)站;
提取、清理和操縱數(shù)據(jù)。
法布里奇奧·羅馬諾(Fabrizio Romano)出生于意大利,帕多瓦大學(xué)計(jì)算機(jī)科學(xué)系碩士。他是一位項(xiàng)目經(jīng)理,同時(shí)也是一位教師,并且是CNHC的成員,現(xiàn)在就職于Sohonet,擔(dān)任首席工程師和項(xiàng)目領(lǐng)導(dǎo)人。
第 1章 Python概述 1
1.1 編程預(yù)備知識(shí) 2
1.2 走近Python 4
1.3 Python的優(yōu)點(diǎn) 5
1.3.1 可移植性 5
1.3.2 一致性 5
1.3.3 提高開(kāi)發(fā)人員的效率 5
1.3.4 廣泛的程序庫(kù) 5
1.3.5 軟件質(zhì)量高 6
1.3.6 軟件集成度高 6
1.3.7 滿(mǎn)足感和樂(lè)趣 6
1.4 Python的缺點(diǎn) 6
1.5 當(dāng)前的Python用戶(hù) 7
1.6 設(shè)置環(huán)境 7
1.7 安裝Python 8
1.7.1 安裝Python解釋器 9
1.7.2 關(guān)于virtualenv 10
1.7.3 第 一個(gè)虛擬環(huán)境 11
1.7.4 控制臺(tái) 14
1.8 運(yùn)行Python程序 14
1.8.1 運(yùn)行Python腳本 14
1.8.2 在交互性shell中運(yùn)行Python 15
1.8.3 以服務(wù)的形式運(yùn)行Python 16
1.8.4 以GUI應(yīng)用程序的形式運(yùn)行Python 16
1.9 Python代碼的組織方式 17
1.10 Python的執(zhí)行模型 21
1.10.1 名稱(chēng)和名字空間 21
1.10.2 作用域 23
1.10.3 對(duì)象和類(lèi) 26
1.11 編寫(xiě)良好代碼的指導(dǎo)原則 28
1.12 Python的文化 29
1.13 關(guān)于IDE的說(shuō)明 31
1.14 總結(jié) 31
第 2章 內(nèi)置的數(shù)據(jù)類(lèi)型 33
2.1 一切都是對(duì)象 34
2.2 可變對(duì)象與不可變對(duì)象 35
2.3 數(shù)值 36
2.3.1 整數(shù) 36
2.3.2 布爾值 38
2.3.3 實(shí)數(shù) 39
2.3.4 復(fù)數(shù) 40
2.3.5 分?jǐn)?shù)和小數(shù) 40
2.4 不可變序列 42
2.4.1 字符串和字節(jié) 42
2.4.2 元組 45
2.5 可變序列 46
2.5.1 列表 47
2.5.2 字節(jié)數(shù)組 50
2.6 集合類(lèi)型 51
2.7 映射類(lèi)型—字典 53
2.8 collections模塊 57
2.8.1 namedtuple 57
2.8.2 defaultdict 59
2.8.3 ChainMap 60
2.9 枚舉 61
2.10 注意事項(xiàng) 62
2.10.1 小值緩存 62
2.10.2 如何選擇數(shù)據(jù)結(jié)構(gòu) 62
2.10.3 關(guān)于索引和截取 64
2.10.4 關(guān)于名稱(chēng) 65
2.11 總結(jié) 66
第3章 迭代和決策 67
3.1 條件編程 68
3.1.1 一種特化的else-elif 69
3.1.2 三元操作符 71
3.2 循環(huán) 72
3.2.1 for循環(huán) 72
3.2.2 迭代器和可迭代對(duì)象 74
3.2.3 對(duì)多個(gè)序列進(jìn)行迭代 75
3.2.4 while循環(huán) 77
3.2.5 continue語(yǔ)句和break語(yǔ)句 80
3.2.6 一種特殊的else子句 82
3.3 綜合應(yīng)用 83
3.3.1 質(zhì)數(shù)生成器 83
3.3.2 應(yīng)用折扣 85
3.4 itertools模塊 88
3.4.1 無(wú)限迭代器 89
3.4.2 終止于最短輸入序列的迭代器 89
3.4.3 組合迭代器 90
3.5 總結(jié) 91
第4章 函數(shù),代碼的基本構(gòu)件 92
4.1 函數(shù)的優(yōu)點(diǎn) 93
4.1.1 減少代碼的重復(fù) 94
4.1.2 分割復(fù)雜任務(wù) 94
4.1.3 隱藏實(shí)現(xiàn)細(xì)節(jié) 95
4.1.4 提高可讀性 95
4.1.5 提高可追蹤性 96
4.2 作用域和名稱(chēng)解析 97
4.3 輸入?yún)?shù) 100
4.3.1 參數(shù)傳遞 100
4.3.2 對(duì)參數(shù)名稱(chēng)的賦值并不會(huì)影響調(diào)用者 101
4.3.3 修改可變對(duì)象會(huì)影響調(diào)用者 102
4.3.4 指定輸入?yún)?shù) 103
4.4 返回值 111
4.5 一些實(shí)用的提示 113
4.6 遞歸函數(shù) 114
4.7 匿名函數(shù) 115
4.8 函數(shù)的屬性 116
4.9 內(nèi)置函數(shù) 117
4.10 最后一個(gè)例子 118
4.11 代碼的文檔 119
4.12 導(dǎo)入對(duì)象 120
4.13 總結(jié) 122
第5章 節(jié)省時(shí)間和內(nèi)存 123
5.1 map、zip和filter函數(shù) 125
5.1.1 map函數(shù) 125
5.1.2 zip函數(shù) 128
5.1.3 filter函數(shù) 129
5.2 解析 129
5.2.1 嵌套的解析 131
5.2.2 在解析中應(yīng)用過(guò)濾 131
5.2.3 dict解析 133
5.2.4 set解析 134
5.3 生成器 134
5.3.1 生成器函數(shù) 135
5.3.2 next工作方式 138
5.3.3 yield from表達(dá)式 141
5.3.4 生成器表達(dá)式 142
5.4 性能上的考慮 145
5.5 不要過(guò)度使用解析和生成器表達(dá)式 147
5.6 名稱(chēng)局部化 151
5.7 內(nèi)置的生成行為 152
5.8 最后一個(gè)例子 153
5.9 總結(jié) 155
第6章 面向?qū)ο缶幊、裝飾器和迭代器 156
6.1 裝飾器 156
6.2 面向?qū)ο缶幊蹋∣OP) 164
6.2.1 Python中最簡(jiǎn)單的類(lèi) 164
6.2.2 類(lèi)和對(duì)象的名字空間 165
6.2.3 屬性屏蔽 166
6.2.4 self變量 167
6.2.5 實(shí)例的初始化 168
6.2.6 OOP與代碼復(fù)用有關(guān) 169
6.2.7 訪問(wèn)基類(lèi) 174
6.2.8 多重繼承 176
6.2.9 靜態(tài)方法和類(lèi)方法 180
6.2.10 私有屬性和名稱(chēng)改寫(xiě) 184
6.2.11 property裝飾器 186
6.2.12 操作符重載 188
6.2.13 多態(tài)—簡(jiǎn)單說(shuō)明 188
6.2.14 數(shù)據(jù)類(lèi) 189
6.3 編寫(xiě)自定義的迭代器 190
6.4 總結(jié) 191
第7章 文件和數(shù)據(jù)持久化 192
7.1 操作文件和目錄 193
7.1.1 打開(kāi)文件 193
7.1.2 讀取和寫(xiě)入文件 195
7.1.3 檢查文件和目錄是否存在 197
7.1.4 對(duì)文件和目錄進(jìn)行操作 197
7.1.5 臨時(shí)文件和臨時(shí)目錄 200
7.1.6 檢查目錄的內(nèi)容 201
7.1.7 文件和目錄的壓縮 202
7.2 數(shù)據(jù)交換格式 203
7.3 IO、流和請(qǐng)求 210
7.3.1 使用內(nèi)存中的流 210
7.3.2 執(zhí)行HTTP請(qǐng)求 211
7.4 對(duì)磁盤(pán)上的數(shù)據(jù)進(jìn)行持久化 214
7.4.1 使用pickle模塊對(duì)數(shù)據(jù)進(jìn)行序列化 214
7.4.2 用shelve保存數(shù)據(jù) 216
7.4.3 把數(shù)據(jù)保存到數(shù)據(jù)庫(kù) 217
7.5 總結(jié) 223
第8章 測(cè)試、性能分析和異常處理 224
8.1 對(duì)應(yīng)用程序進(jìn)行測(cè)試 225
8.1.1 測(cè)試的結(jié)構(gòu) 227
8.1.2 編寫(xiě)測(cè)試的指導(dǎo)原則 228
8.1.3 單元測(cè)試 229
8.1.4 測(cè)試一個(gè)CSV生成器 231
8.2 測(cè)試驅(qū)動(dòng)的開(kāi)發(fā) 244
8.3 異常 247
8.4 對(duì)Python進(jìn)行性能分析 251
8.5 總結(jié) 255
第9章 加密與標(biāo)記 256
9.1 加密的需要 256
9.2 hashlib模塊 257
9.3 secrets模塊 260
9.3.1 隨機(jī)數(shù) 260
9.3.2 標(biāo)記的生成 260
9.3.3 摘要的比較 262
9.4 HMAC 263
9.5 JSON Web標(biāo)記 263
9.5.1 已注冊(cè)的訴求 265
9.5.2 使用非對(duì)稱(chēng)(公鑰)算法 268
9.6 總結(jié) 270
第 10章 并發(fā)執(zhí)行 271
10.1 并發(fā)與平行的比較 272
10.2 線程和進(jìn)程 272
10.2.1 線程的簡(jiǎn)要剖析 272
10.2.2 全局解釋器鎖 274
10.2.3 競(jìng)爭(zhēng)條件和死鎖 275
10.2.4 進(jìn)程的簡(jiǎn)要剖析 277
10.2.5 多線程與多進(jìn)程之間的區(qū)別 278
10.3 Python中的并發(fā)執(zhí)行 279
10.3.1 啟動(dòng)線程 279
10.3.2 啟動(dòng)進(jìn)程 281
10.3.3 終止線程和進(jìn)程 282
10.3.4 生成多個(gè)線程 283
10.3.5 解決競(jìng)爭(zhēng)條件 284
10.3.6 線程的局部數(shù)據(jù) 286
10.3.7 線程和進(jìn)程的通信 288
10.3.8 線程池和進(jìn)程池 291
10.3.9 使用進(jìn)程為函數(shù)添加到期時(shí)間 294
10.4 案例 295
10.4.1 案例1:并發(fā)的mergesort 296
10.4.2 案例2:批量解答數(shù)獨(dú)的程序 300
10.4.3 案例3:下載隨機(jī)圖像 309
10.5 總結(jié) 314
第 11章 調(diào)試和故障排除 315
11.1 調(diào)試技巧 316
11.1.1 用print進(jìn)行調(diào)試 316
11.1.2 用自定義函數(shù)進(jìn)行調(diào)試 317
11.1.3 檢查回溯 319
11.1.4 使用Python調(diào)試器 321
11.1.5 檢查日志文件 323
11.1.6 其他技巧 326
11.1.7 去哪里尋找相關(guān)的信息 327
11.2 故障排除指南 327
11.2.1 使用控制臺(tái)編輯器 327
11.2.2 選擇合適的地方放置調(diào)試斷點(diǎn) 327
11.2.3 使用測(cè)試進(jìn)行調(diào)試 328
11.2.4 監(jiān)視 328
11.3 總結(jié) 328
第 12章 GUI和腳本 330
12.1 第 1種方法:腳本 332
12.1.1 導(dǎo)入部分 332
12.1.2 解析參數(shù) 333
12.1.3 業(yè)務(wù)邏輯 335
12.2 第 2種方法:GUI應(yīng)用程序 339
12.2.1 導(dǎo)入部分 341
12.2.2 布局邏輯 341
12.2.3 業(yè)務(wù)邏輯 345
12.2.4 改進(jìn)GUI應(yīng)用程序 351
12.3 進(jìn)一步了解GUI應(yīng)用程序 352
12.3.1 turtle模塊 352
12.3.2 wxPython、PyQt和PyGTK 353
12.3.3 最小驚訝原則 353
12.3.4 線程方面的考慮 353
12.4 總結(jié) 354
第 13章 數(shù)據(jù)科學(xué) 355
13.1 IPython和Jupyter Notebook 356
13.1.1 安裝必要的程序庫(kù) 358
13.1.2 使用Anaconda 358
13.1.3 啟動(dòng)Notebook 359
13.2 處理數(shù)據(jù) 359
13.2.1 設(shè)置Notebook 360
13.2.2 準(zhǔn)備數(shù)據(jù) 360
13.2.3 整理數(shù)據(jù) 364
13.2.4 創(chuàng)建DataFrame 366
13.2.5 把DataFrame保存到文件 375
13.2.6 顯示結(jié)果 375
13.3 數(shù)據(jù)科學(xué)和Python的更多工具 381
13.4 總結(jié) 383
第 14章 Web開(kāi)發(fā) 384
14.1 Web 384
14.2 Web的工作方式 385
14.3 Django Web框架 385
14.3.1 Django的設(shè)計(jì)原則 386
14.3.2 Django的URL分配器 388
14.4 一個(gè)regex網(wǎng)站 389
14.4.1 安裝Django 389
14.4.2 添加Entry模型 392
14.4.3 對(duì)管理員面板進(jìn)行自定義 393
14.4.4 創(chuàng)建表單 396
14.4.5 編寫(xiě)視圖 397
14.4.6 連接URL和視圖 401
14.4.7 編寫(xiě)模板 403
14.5 Web開(kāi)發(fā)的未來(lái) 409
14.5.1 編寫(xiě)Flask視圖 409
14.5.2 用Falcon創(chuàng)建JSON語(yǔ)錄服務(wù)器 411
14.6 總結(jié) 413
14.7 再見(jiàn) 414