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