滾雪球學 Python

王德朕

  • 出版商: 電子工業
  • 出版日期: 2023-05-01
  • 定價: $528
  • 售價: 7.5$396
  • 語言: 簡體中文
  • 頁數: 268
  • ISBN: 712145484X
  • ISBN-13: 9787121454844
  • 相關分類: Python程式語言
  • 立即出貨 (庫存 < 3)

買這商品的人也買了...

商品描述

本書用滾雪球的思維講解 Python 的知識體系。 本書共 31 章,分為 3 個部分。 第 1 部分為基礎篇,包括第 1~15 章,介紹 Python 語言核心知識點。 第 2 部分為進階篇,包括第 16~28 章,是進階內容,也是 Python 語言的魅力點所在。通過對這部分 內容的學習,讀者會全方位地感受到 Python 的靈活、迅捷、禪意。 第 3 部分為實戰篇,包括第 29~31 章,通過 3 個實戰案例,介紹 Python 的數據處理能力,以及 Python 在網站方面的應用。

目錄大綱

第 1 部分 基礎篇
1 Python 正確起手式 ................................................................................... 1
1.1 滾雪球學 Python 課程前置導語 ................................................................................... 1
1.2 Python 語言簡介 ............................................................................................................ 1
1.2.1 Python 作者 ........................................................................................................ 2
1.2.2 Python 語言發展簡介 ........................................................................................ 2
1.2.3 Python 語言的前景 ............................................................................................ 2
1.3 Python 環境安裝 ............................................................................................................ 3
1.3.1 Python 3.7.x 安裝 ............................................................................................... 3
1.3.2 PyCharm 安裝 .................................................................................................... 4
1.4 學語言先學註釋 ............................................................................................................ 8
1.4.1 註釋符號 ............................................................................................................ 9
1.4.2 多行註釋 ............................................................................................................ 9
1.5 認識變量 ...................................................................................................................... 10
1.5.1 變量命名規則 .................................................................................................. 11
1.5.2 不合規變量名舉例 .......................................................................................... 11
1.6 打印輸出函數 print() ................................................................................................... 12
1.7 數學運算及優先級問題 .............................................................................................. 12
1.8 賦值運算符 .................................................................................................................. 13
2 無門檻掌握數據類型與輸入/輸出函數 ..................................................... 14
2.1 基本數據類型 .............................................................................................................. 14
2.1.1 數值數據類型 .................................................................................................. 15
2.1.2 整數的不同形式表示 ...................................................................................... 15
2.1.3 數據類型強制轉換 .......................................................................................... 16
2.1.4 擴展幾個數值數據類型常用的函數 .............................................................. 17
2.1.5 布爾值數據類型 .............................................................................................. 18
2.1.6 字符串數據類型 .............................................................................................. 18
2.2 輸入與輸出 .................................................................................................................. 21
2.2.1 print()函數格式化輸出 .................................................................................... 22
2.2.2 format()函數 ..................................................................................................... 23
2.2.3 input()函數數據輸入 ....................................................................................... 24
3 無轉折不編程 ......................................................................................... 25
3.1 關系運算符 .................................................................................................................. 25
3.2 算術運算符 .................................................................................................................. 26
3.3 邏輯運算符 .................................................................................................................. 27
3.4 編程中的轉折——流程控制 ...................................................................................... 27
3.4.1 if 語句 .............................................................................................................. 27
3.4.2 if…else…語句 ................................................................................................. 29
3.4.3 if…elif…else…語句 ........................................................................................ 29
3.4.4 if 語句的嵌套................................................................................................... 30
4 列表一學完,Python 會一半 ................................................................... 31
4.1 列表是個啥 .................................................................................................................. 31
4.1.1 列表定義 .......................................................................................................... 31
4.1.2 列表讀取 .......................................................................................................... 32
4.1.3 列表切片 .......................................................................................................... 33
4.1.4 列表相關內置函數 .......................................................................................... 33
4.1.5 列表元素的修改與刪除 .................................................................................. 34
4.1.6 列表相加、相乘、刪除 .................................................................................. 35
4.2 初識 Python 面向對象 ................................................................................................. 36
4.2.1 字符串對象的方法 .......................................................................................... 36
4.2.2 快速獲取系統內置方法 .................................................................................. 37
4.3 通過方法增刪列表元素 .............................................................................................. 38
4.3.1 追加列表元素 .................................................................................................. 38
4.3.2 插入列表元素 .................................................................................................. 39
4.3.3 刪除列表元素 .................................................................................................. 40
4.4 列表排序 ...................................................................................................................... 40
4.4.1 排序方法 sort() ................................................................................................ 41
4.4.2 排序函數 sorted() ............................................................................................. 41
4.5 其他列表方法 .............................................................................................................. 42
4.5.1 檢索元素索引 .................................................................................................. 42
4.5.2 統計列表元素出現次數 .................................................................................. 42
4.5.3 轉換為字符串 .................................................................................................. 43
4.5.4 追加列表 .......................................................................................................... 43
4.6 多維列表 ...................................................................................................................... 43
4.7 特殊的列表字符串 ...................................................................................................... 44
4.7.1 字符串索引與切片 .......................................................................................... 44
4.7.2 可用於字符串的部分函數和方法 .................................................................. 44
4.7.3 將字符串轉換為列表 ...................................................................................... 44
5 Python 循環的本質就是一段代碼懶得重復寫 .......................................... 45
5.1 for 循環 ........................................................................................................................ 45
5.1.1 for 循環基本使用 ............................................................................................ 45
5.1.2 for 循環嵌套 if 判斷語句 ................................................................................ 46
5.2 range()函數 .................................................................................................................. 46
5.3 for 循環補充知識 ........................................................................................................ 48
5.3.1 for 循環嵌套 .................................................................................................... 48
5.3.2 break 終止循環 ................................................................................................ 49
5.3.3 continue 繼續循環 ........................................................................................... 49
5.3.4 for…else 循環 .................................................................................................. 50
5.4 while 循環 .................................................................................................................... 51
5.4.1 while 循環的經典應用 .................................................................................... 51
5.4.2 while 循環其他說明 ........................................................................................ 52
6 Python 元組,不可變的列表 ................................................................... 53
6.1 元組的定義 .................................................................................................................. 53
6.2 讀取元組中的元素 ...................................................................................................... 54
6.3 元組的其他知識補充 .................................................................................................. 54
6.4 元組與列表轉換 .......................................................................................................... 55
6.5 內置函數 zip() ............................................................................................................. 55
6.6 元組的功能與應用場景 .............................................................................................. 56
7 字典怎麽查,Python 字典就怎麽用 ........................................................ 57
7.1 字典的基本操作 .......................................................................................................... 57
7.1.1 字典的定義 ...................................................................................................... 57
7.1.2 獲取字典的值 .................................................................................................. 58
7.1.3 增加元素、修改元素、刪除元素 .................................................................. 58
7.1.4 字典的補充知識 .............................................................................................. 59
7.2 字典的遍歷 .................................................................................................................. 60
7.2.1 遍歷字典的鍵值 .............................................................................................. 60
7.2.2 遍歷字典的鍵 .................................................................................................. 61
7.2.3 遍歷字典的值 .................................................................................................. 61
7.3 字典與其他數據類型的結合 ...................................................................................... 62
7.3.1 列表嵌套字典 .................................................................................................. 62
7.3.2 字典嵌套列表 .................................................................................................. 62
7.4 字典的方法 .................................................................................................................. 62
7.4.1 fromkeys()方法 ................................................................................................ 62
7.4.2 get()方法 .......................................................................................................... 63
7.4.3 setdefault()方法 ................................................................................................ 63
7.4.4 pop()方法 ......................................................................................................... 64

8 Python 中無序且元素唯一的數據類型——集合 ...................................... 65
8.1 集合是什麽 .................................................................................................................. 65
8.1.1 集合的聲明 ...................................................................................................... 65
8.1.2 set()函數定義集合 ........................................................................................... 66
8.2 集合的操作 .................................................................................................................. 67
8.2.1 交集 .................................................................................................................. 67
8.2.2 並集 .................................................................................................................. 67
8.2.3 差集 .................................................................................................................. 68
8.2.4 對稱差集 .......................................................................................................... 68
8.3 集合的方法 .................................................................................................................. 69
8.3.1 集合的增刪 ...................................................................................................... 69
8.3.2 集合的其地方法 .............................................................................................. 70
8.4 集合可用的內置函數和凍結集合 .............................................................................. 71
9 函數是 Python 基礎部分的第一道難關.................................................... 72
9.1 函數出現的背景 .......................................................................................................... 72
9.2 函數初接觸 .................................................................................................................. 72
9.2.1 函數的定義 ...................................................................................................... 72
9.2.2 無參數無返回值的函數 .................................................................................. 73
9.3 函數的參數設計 .......................................................................................................... 74
9.3.1 傳遞一個參數 .................................................................................................. 74
9.3.2 傳遞多個參數 .................................................................................................. 74
9.3.3 關鍵詞參數 ...................................................................................................... 75
9.3.4 參數默認值 ...................................................................................................... 75
9.4 函數返回值 .................................................................................................................. 76
9.4.1 返回 None ........................................................................................................ 76
9.4.2 返回一個值 ...................................................................................................... 76
9.4.3 返回多個值 ...................................................................................................... 77
9.4.4 返回字典與列表 .............................................................................................. 77
9.5 調用函數時參數是列表 .............................................................................................. 77
9.6 局部變量與全局變量 .................................................................................................. 78
9.7 傳遞任意數量的參數 .................................................................................................. 79
9.7.1 普通參數與任意參數的組合 .......................................................................... 79
9.7.2 普通參數與任意數量的關鍵詞參數 .............................................................. 80
9.8 函數的擴展學習 .......................................................................................................... 81
10 Python 面向對象的編程 ....................................................................... 82
10.1 類的定義與使用 ........................................................................................................ 82
10.1.1 定義類、屬性與方法 .................................................................................... 82
10.1.2 屬性與方法的調用 ........................................................................................ 83
10.1.3 類的構造函數 ................................................................................................ 84
10.1.4 屬性初始值 .................................................................................................... 85
10.2 封裝 ............................................................................................................................ 86
10.2.1 私有屬性 ........................................................................................................ 86
10.2.2 私有方法 ........................................................................................................ 87
10.3 繼承 ............................................................................................................................ 88
10.3.1 繼承的簡單應用 ............................................................................................ 88
10.3.2 子類與父類有相同名稱的屬性或方法 ........................................................ 89
10.3.3 子類用父類的方法 ........................................................................................ 90
10.4 多態 ............................................................................................................................ 91
10.5 多重繼承 .................................................................................................................... 92
10.6 對象的數據類型判斷 ................................................................................................ 92
10.7 isinstance()函數 ......................................................................................................... 92
10.8 特殊屬性、方法 ........................................................................................................ 93
11 Python 模塊的設計與應用 ................................................................... 95
11.1 將函數放到模塊中 .................................................................................................... 95
11.2 應用函數模塊 ............................................................................................................ 96
11.2.1 import 導入模塊 ............................................................................................ 96
11.2.2 導入模塊的某個函數 .................................................................................... 97
11.2.3 as 別名 ............................................................................................................ 97
11.3 將類放到模塊中 ........................................................................................................ 98
11.3.1 import 導入模塊 ............................................................................................ 98
11.3.2 導入模塊中的類 ............................................................................................ 99
11.4 常見模塊 .................................................................................................................... 99
11.4.1 隨機數 random 模塊 ...................................................................................... 99
11.4.2 時間模塊 ...................................................................................................... 101
12 Python 文件讀取與寫入 ..................................................................... 102
12.1 文件夾和文件路徑 .................................................................................................. 102
12.1.1 絕對路徑和相對路徑 .................................................................................. 103
12.1.2 os 模塊與 os.path 模塊 ................................................................................ 103
12.1.3 路徑檢查方法 .............................................................................................. 105
12.1.4 目錄操作 ...................................................................................................... 105
12.1.5 獲取文件大小 .............................................................................................. 106
12.1.6 獲取指定目錄下的所有內容 ...................................................................... 106
12.2 Python 讀寫文件 ...................................................................................................... 106
12.2.1 讀取文件 ...................................................................................................... 106
12.2.2 寫入文件 ...................................................................................................... 109
12.3 shutil 模塊 ................................................................................................................ 110
12.3.1 文件復制 ...................................................................................................... 110
12.3.2 復制目錄 ...................................................................................................... 111
12.3.3 多功能 move()方法 ..................................................................................... 111
12.3.4 刪除有數據的目錄 ...................................................................................... 111
13 Python 程序異常處理與 logging 模塊 ................................................ 112
13.1 程序異常 .................................................................................................................. 112
13.1.1 最常見的錯誤——除數為 0 ....................................................................... 112
13.1.2 try…except 語句 .......................................................................................... 113
13.1.3 try…except…else 語句 ................................................................................ 114
13.2 異常類型 .................................................................................................................. 115
13.2.1 常見的異常類型 .......................................................................................... 115
13.2.2 捕捉多個異常 .............................................................................................. 116
13.2.3 一個 except 捕獲多個異常 .......................................................................... 116
13.2.4 直接拋出異常 .............................................................................................. 116
13.3 finally 語句 .............................................................................................................. 117
13.4 日誌模塊 logging ..................................................................................................... 117
13.4.1 日誌信息等級 .............................................................................................. 117
13.4.2 格式化 logging 日誌信息 ............................................................................ 118
13.4.3 將程序日誌輸出到文件中 .......................................................................... 119
13.4.4 停用程序日誌 .............................................................................................. 120
14 在 Python 中操作 SQLite 數據庫 ....................................................... 121
14.1 SQLite 基本使用 ..................................................................................................... 121
14.2 建立 SQLite 數據庫表 ............................................................................................ 122
14.3 向表中增加數據 ...................................................................................................... 124
14.4 查詢數據庫中的表數據 .......................................................................................... 125
14.5 更新表數據 .............................................................................................................. 126
14.6 刪除表數據 .............................................................................................................. 127
15 Python 中的多線程與多進程.............................................................. 128
15.1 Python 中的多線程 .................................................................................................. 128
15.1.1 簡單的多線程 .............................................................................................. 129
15.1.2 向子線程中傳遞參數 .................................................................................. 130
15.1.3 線程命名 ...................................................................................................... 131
15.1.4 Daemon 守護線程 ....................................................................................... 133
15.1.5 堵塞主線程 .................................................................................................. 134
15.1.6 使用 is_alive()方法檢驗子線程是否在工作 .............................................. 135
15.1.7 自定義線程類 .............................................................................................. 136
15.1.8 資源鎖定與解鎖 .......................................................................................... 136
15.2 subprocess 模塊 ....................................................................................................... 137
15.2.1 Popen()方法 ................................................................................................. 138
15.2.2 Popen()方法的參數 ..................................................................................... 138
15.2.3 通過關鍵字 start 打開程序 ......................................................................... 138
第 2 部分 進階篇
16 列表與元組、字典與集合 .................................................................. 139
16.1 為何列表和元組總放在一起 .................................................................................. 139
16.1.1 列表和元組的切片 ...................................................................................... 140
16.1.2 負數索引與二者相互轉換 .......................................................................... 140
16.1.3 列表與元組的存儲方式 .............................................................................. 140
16.1.4 列表和元組的應用場景 .............................................................................. 141
16.2 字典與集合的那些事兒 .......................................................................................... 143
16.2.1 字典和集合的基礎操作 .............................................................................. 143
16.2.2 字典與集合的排序 ...................................................................................... 145
16.2.3 字典與集合的效率問題 .............................................................................. 146
17 列表推導式與字典推導式 .................................................................. 148
17.1 列表推導式 .............................................................................................................. 148
17.2 字典推導式 .............................................................................................................. 150
17.3 元組推導式與集合推導式 ...................................................................................... 151
18 lambda 表達式 .................................................................................. 152
18.1 lambda 表達式的基本使用 ..................................................................................... 152
18.2 lambda 表達式與 def 定義函數的區別 .................................................................. 153
18.3 lambda 表達式的應用場景 ..................................................................................... 154
18.4 不要濫用 lambda 表達式 ........................................................................................ 155
19 內置函數 filter()、map()、reduce()、zip()、enumerate() .................. 156
19.1 filter()函數 ............................................................................................................... 156
19.2 map()函數 ................................................................................................................ 156
19.3 reduce()函數 ............................................................................................................. 157
19.4 zip()函數 .................................................................................................................. 158
19.5 enumerate()函數 ....................................................................................................... 159
20 函數裝飾器 ........................................................................................ 160
20.1 裝飾器的基本使用 .................................................................................................. 160
20.2 對帶參數的函數進行裝飾 ...................................................................................... 162
20.3 多個裝飾器 .............................................................................................................. 164
20.4 functools.wraps ........................................................................................................ 168
20.5 基於類的裝飾器 ...................................................................................................... 169
20.6 內置裝飾器 .............................................................................................................. 170
21 閉包................................................................................................... 171
21.1 閉包的基本操作 ...................................................................................................... 171
21.2 閉包的作用域 .......................................................................................................... 172
21.3 閉包的作用 .............................................................................................................. 173
21.4 判斷閉包函數 .......................................................................................................... 173
21.5 閉包存在的問題 ...................................................................................................... 174
22 Python 中的日期與時間 ..................................................................... 175
22.1 日期/時間模塊簡介 ................................................................................................. 175
22.2 time 時間模塊 .......................................................................................................... 176
22.2.1 get_clock_info()函數 ................................................................................... 176
22.2.2 獲取時間戳 .................................................................................................. 178
22.2.3 獲取可讀時間 .............................................................................................. 178
22.2.4 單調時間 monotonic time ............................................................................ 179
22.2.5 處理器時鐘時間 .......................................................................................... 179
22.2.6 性能計數器 time.perf_counter ..................................................................... 180
22.2.7 時間組件 ...................................................................................................... 180
22.2.8 解析和格式化時間 ...................................................................................... 181
22.2.9 time 模塊 ...................................................................................................... 182
22.3 datetime 模塊 ........................................................................................................... 182
22.3.1 date 類 .......................................................................................................... 182
22.3.2 time 類 .......................................................................................................... 184
22.3.3 datetime 類 ................................................................................................... 184
22.3.4 timedelta 類 .................................................................................................. 184
22.4 calendar 模塊 ........................................................................................................... 185
23 global 和 nonlocal 作用域 .................................................................. 186
23.1 Python 中的作用域 .................................................................................................. 186
23.2 global 關鍵字 ........................................................................................................... 187
22.3 nonlocal 關鍵字 ....................................................................................................... 189
24 Python 中的哈希表與可哈希對象 ...................................................... 191
24.1 哈希表(散列表) .................................................................................................. 191
24.2 可哈希與不可哈希 .................................................................................................. 191
24.3 hash()函數 ................................................................................................................ 192
24.4 hashlib 模塊 ............................................................................................................. 193
25 Python 內置模塊之 random ............................................................... 194
25.1 基本隨機函數 .......................................................................................................... 194
25.1.1 seed()與 random()函數 ................................................................................ 194
25.1.2 getstate()和 setstate(state)函數 .................................................................... 195
25.2 擴展隨機函數 .......................................................................................................... 196
25.2.1 randint()和 randrange()函數 ........................................................................ 196
25.2.2 getrandbits(k)和 choice(seq)函數 ................................................................ 197
25.2.3 shuffle(seq)和 sample(pop,k)函數 ............................................................... 197
25.3 分佈隨機函數 .......................................................................................................... 197
25.3.1 uniform(a,b)、betavariate 和 triangular 函數 .............................................. 198
25.3.2 其他分佈隨機函數 ...................................................................................... 198
26 Python 內置模塊之 re,正則表達式的初階用法 ................................ 199
26.1 re 庫的應用 .............................................................................................................. 199
26.1.1 正則表達式語法 .......................................................................................... 199
26.1.2 re 庫的基本用法 .......................................................................................... 200
26.2 re 庫相關函數說明 .................................................................................................. 201
26.2.1 re.search()函數 ............................................................................................. 201
26.2.2 re.match()函數 ............................................................................................. 202
26.2.3 re.findall()函數 ............................................................................................. 202
26.2.4 re.split()函數 ................................................................................................ 202
26.2.5 re.finditer()函數 ........................................................................................... 204
26.2.6 re.sub()函數 .................................................................................................. 204
26.3 re 庫的面向對象寫法 .............................................................................................. 205
26.4 re 庫的 match 對象 .................................................................................................. 205
26.4.1 match 對象的屬性 ....................................................................................... 205
26.4.2 match 對象的方法 ....................................................................................... 206
27 sys 庫、os 庫、getopt 庫與 filecmp 庫 .............................................. 207
27.1 os 庫 ......................................................................................................................... 207
27.1.1 os 庫路徑操作 ............................................................................................. 208
27.1.2 os 庫進程管理 ............................................................................................. 209
27.1.3 os 庫運行環境相關參數.............................................................................. 209
27.2 sys 庫 ........................................................................................................................ 210
27.2.1 常見參數 ...................................................................................................... 210
27.2.2 常見方法 ...................................................................................................... 211
27.3 getopt 庫 ................................................................................................................... 212
27.4 filecmp 庫 ................................................................................................................. 213
27.4.1 filecmp.cmp()、filecmp.cmpfiles()函數 ...................................................... 213
27.4.2 目錄比較 ...................................................................................................... 214
28 類函數、成員函數、靜態函數、抽象函數和方法偽裝屬性 ................ 215
28.1 類函數 ...................................................................................................................... 215
28.2 靜態函數 .................................................................................................................. 216
28.3 類函數與靜態函數在繼承類中的表現 .................................................................. 217
28.4 抽象函數 .................................................................................................................. 218
28.5 方法偽裝屬性 .......................................................................................................... 219
第 3 部分 實戰篇
29 爬蟲案例——某育兒網問答數據抓取................................................. 222
29.1 爬蟲分析 .................................................................................................................. 222
29.1.1 類別頁面分析 .............................................................................................. 222
29.1.2 問題列表頁面分析 ...................................................................................... 224
29.2 爬蟲邏輯編碼 .......................................................................................................... 225
29.2.1 邏輯編碼(偽代碼) .................................................................................. 225
29.2.2 requests 庫中的 get()方法說明 ................................................................... 225
29.2.3 獲取所有的分類頁面地址 .......................................................................... 228
29.2.4 循環所有的分類頁面地址 .......................................................................... 228
29.2.5 獲取每個分類對應的列表頁面,並獲取總頁碼 ...................................... 229
29.2.6 從第 1 頁循環到總頁碼 .............................................................................. 229
29.3 案例收尾 .................................................................................................................. 230
30 爬蟲案例——奧特曼圖片採集 ........................................................... 232
30.1 目標站點分析 .......................................................................................................... 232
30.2 編碼 .......................................................................................................................... 234
31 Python 開源框架:Flask ................................................................... 239
31.1 Flask 簡介 ................................................................................................................ 239
31.1.1 完成一個 hello world 網頁 .......................................................................... 239
31.1.2 獲取用戶請求數據 ...................................................................................... 241
31.1.3 在 URL 中提供多個參數 ............................................................................ 242
31.2 在 Flask 中操作數據庫 ........................................................................................... 244
31.3 使用 Flask 模塊實現 ajax 數據入庫 ....................................................................... 247