內容簡介
本書是幫助Python新手入門的經典圖書,涵蓋了Python編程的方方面面。本書前半部分介紹了基礎知識與概念:從安裝Python、配置開發環境,到列表、元組、字元串、字典以及各種語句的基礎知識,再到抽象、異常、方法、屬性、疊代器等核心概念,Python與資料庫、網路、C語言等工具結合使用,以及Python程式測試、打包、發布等知識。本書的後半部分,向讀者詳盡介紹了當下流行的多個Python項目的開發過程。 本次修訂,不僅在結構與細節知識上進行了最佳化和完善,還增加了貼近真實商業環境的案例,並輔以課件PPT和專門針對求職應聘的習題,旨在幫助讀者真正掌握Python開發的實戰能力。
作者簡介
莫振傑
綠葉學習網站長 | 人氣系列教程作者
全棧工程師,涉獵前端開發、後端開發、資料庫開發、數據科學等多個領域。擁有一個高人氣的個人網站:綠葉學習網,用於分享技術經驗,教程閱讀量累計超過1000萬。其創作的《Web前端開發精品課》與《從0到1》系列圖書,憑藉清新的風格與嚴謹的講解,受到眾多高校師生以及廣大學習者的認可,並且被數十家高校選為教材使用。此外,他還曾被評為“人民郵電出版社IT圖書2020年影響力作者”。
圖書目錄
第 1 部分 基礎語法
第 1 章 快速掌握基礎知識 2
1.1 互動式解釋器:IDLE 2
1.2 VSCode 編輯器 4
1.3 變數 6
1.3.1 變數的命名 6
1.3.2 變數這樣用 8
1.4 數據類型 9
1.4.1 數字 10
1.4.2 字元串 11
1.4.3 判斷類型 12
1.5 運算符 13
1.5.1 算術運算符 13
1.5.2 賦值運算符 14
1.5.3 比較運算符 15
1.5.4 邏輯運算符 16
1.6 類型轉換 18
1.6.1 把“數字”轉換為“字元串” 18
1.6.2 把“字元串”轉換為“數字” 19
1.6.3 “整數”與“浮點數”互轉 20
1.7 注釋 20
1.8 輸出內容 21
1.9 輸入內容 23
1.10 試一試:交換兩個變數的值 25
1.11 試一試:交換個位和十位 26
1.12 小結 26
第 2 章 流程控制 28
2.1 選擇結構 28
2.1.1 單向選擇:if 28
2.1.2 雙向選擇:if-else 30
2.1.3 多向選擇:if-elif-else 31
2.1.4 if 語句的嵌套 31
2.1.5 條件表達式 33
2.1.6 真假判斷 34
2.2 循環結構 36
2.2.1 while 語句 36
2.2.2 for 語句 38
2.2.3 循環中的 else 41
2.2.4 pass 語句 42
2.3 break 和 continue 42
2.3.1 break 語句 42
2.3.2 continue 語句 44
2.4 試一試:獲取月份對應的季節 44
2.5 試一試:找出“水仙花數” 45
2.6 試一試:求 0~100 之間所有質數 46
2.7 試一試:輸出一個圖案 46
2.8 小結 47
第 3 章 列表與元組 49
3.1 列表概述 50
3.2 創建列表 50
3.3 基本操作 51
3.3.1 獲取元素 51
3.3.2 修改元素 52
3.3.3 添加元素 53
3.3.4 刪除元素 55
3.4 列表方法 57
3.4.1 統計元素的個數:count() 57
3.4.2 獲取元素下標:index() 58
3.4.3 顛倒元素順序:reverse() 59
3.4.4 元素大小排序:sort() 59
3.4.5 連線元素:join() 60
3.4.6 合併列表:extend() 61
3.4.7 清空列表:clear() 62
3.5 切片 63
3.6 更多實用操作 66
3.6.1 獲取長度:len() 66
3.6.2 遍歷列表:for-in 67
3.6.3 檢索列表:in 和 not in 68
3.6.4 數值計算:max()、min() 和sum() 68
3.6.5 列表運算 69
3.6.6 列表推導式 69
3.7 二維列表 71
3.8 元組 72
3.9 試一試:列表去重 75
3.10 試一試:輸出月份 75
3.11 試一試:求列表中的最大值 76
3.12 小結 76
第 4 章 字元串 78
4.1 多行字元串 78
4.2 原始字元串 79
4.3 基本操作 80
4.4 字元串方法 82
4.4.1 統計字元個數:count() 82
4.4.2 獲取子串的下標:index() 82
4.4.3 替換字元串:replace() 83
4.4.4 分割字元串:split() 84
4.4.5 去除首尾符號:strip() 85
4.4.6 大小寫轉換 86
4.4.7 判斷字元串 87
4.4.8 對齊方式 90
4.5 切片 91
4.6 更多實用操作 94
4.6.1 獲取長度:len() 94
4.6.2 類型轉換:list() 和 tuple() 95
4.6.3 字元串運算 97
4.6.4 字元串拼接 97
4.7 序列的通用操作 100
4.8 試一試:統計單詞的個數 100
4.9 試一試:將首字母轉換成大寫 101
4.10 小結 101
第 5 章 字典與集合 102
5.1 字典概述 102
5.2 創建字典 102
5.3 基本操作 103
5.3.1 獲取某個鍵的值 103
5.3.2 修改某個鍵的值 104
5.3.3 增加鍵值對 104
5.3.4 刪除鍵值對 105
5.4 字典方法 105
5.4.1 清空字典:clear() 106
5.4.2 複製字典:copy() 106
5.4.3 更新字典:update() 107
5.4.4 創建新字典:fromkeys() 107
5.4.5 設定默認值:setdefault() 108
5.4.6 獲取所有鍵:keys() 108
5.4.7 獲取所有值:values() 109
5.4.8 獲取所有鍵值:items() 110
5.5 更多實用操作 111
5.5.1 獲取長度:len() 112
5.5.2 檢索字典:in、not in 112
5.5.3 合併字典 113
5.5.4 字典推導式 113
5.6 集合概述 114
5.6.1 集合簡介 114
5.6.2 基本操作 115
5.6.3 集合操作 116
5.6.4 集合推導式 117
5.6.5 套用場景 118
5.7 試一下:統計數字出現的次數 119
5.8 試一試:統計出現次數最多的字母 119
5.9 小結 120
第 6 章 函式 121
6.1 函式簡介 121
6.2 函式的定義 123
6.2.1 沒有返回值的函式 123
6.2.2 有返回值的函式 124
6.2.3 變數作用域 125
6.3 函式的調用 127
6.3.1 直接調用 127
6.3.2 在表達式中調用 128
6.4 函式參數 128
6.4.1 形參和實參 128
6.4.2 參數可以是任何類型 129
6.4.3 位置參數 129
6.4.4 關鍵字參數 130
6.4.5 參數默認值 131
6.5 嵌套函式 133
6.6 遞歸函式 134
6.7 內置函式 136
6.8 試一試:判斷某一年是否閏年 138
6.9 試一試:冒泡排序 138
6.10 小結 139
第 7 章 類與對象 141
7.1 面向對象 141
7.2 創建對象 142
7.3 構造函式:__init__() 144
7.4 類屬性和實例屬性 146
7.5 類方法和實例方法 148
7.6 靜態方法 149
7.7 繼承 150
7.8 試一試:封裝一個矩形類 152
7.9 試一試:封裝一個銀行賬戶類 152
7.10 小結 153
第 8 章 異常 154
8.1 常見異常 154
8.2 處理異常 156
8.2.1 try-except 語句 157
8.2.2 else 子句 160
8.2.3 finally 子句 160
8.3 錯誤級別 162
8.3.1 低級錯誤 162
8.3.2 中級錯誤 162
8.3.3 高級錯誤 163
8.4 試一試:處理計算異常 164
8.5 小結 164
第 9 章 模組 165
9.1 包與模組 165
9.1.1 包是什麼 165
9.1.2 模組是什麼 166
9.1.3 自定義包 167
9.1.4 自定義模組 169
9.1.5 以主程式形式執行 171
9.2 數學模組:math 172
9.2.1 圓周率:pi 174
9.2.2 平方根:sqrt() 174
9.2.3 冪運算:pow() 175
9.2.4 向上取整:ceil() 175
9.2.5 向下取整:floor() 176
9.2.6 三角函式 177
9.3 隨機數模組:random 179
9.3.1 隨機整數 179
9.3.2 隨機浮點數 181
9.3.3 隨機序列 182
9.4 時間模組:time 和 datetime 184
9.4.1 time 模組 184
9.4.2 datetime 模組 189
9.5 試一試:生成隨機驗證碼 192
9.6 試一試:計算函式執行時間 192
9.7 其他標準庫模組 193
9.8 小結 194
第 10 章 檔案 195
10.1 檔案路徑 195
10.1.1 絕對路徑 195
10.1.2 相對路徑 196
10.2 讀取檔案 197
10.2.1 讀取所有內容:read() 197
10.2.2 逐行讀取內容:readlines() 199
10.3 寫入檔案 201
10.3.1 以“覆蓋”方式寫入檔案 201
10.3.2 以“追加”方式寫入檔案 202
10.4 pathlib 模組 203
10.4.1 基本屬性 203
10.4.2 重命名 204
10.4.3 判斷路徑 206
10.4.4 拼接路徑 207
10.4.5 創建與刪除路徑 208
10.5 os 模組 210
10.5.1 獲取工作目錄 210
10.5.2 改變工作目錄 211
10.5.3 列舉所有檔案 211
10.5.4 遍歷檔案 212
10.5.5 獲取檔案大小 214
10.5.6 獲取檔案時間 215
10.6 shutil 模組 217
10.6.1 複製檔案 217
10.6.2 移動檔案 219
10.6.3 刪除資料夾 221
10.7 send2trash 模組 221
10.8 zipfile 模組 222
10.8.1 讀取檔案 223
10.8.2 解壓檔案 224
10.8.3 壓縮檔案 224
10.9 異常處理 227
10.9.1 try-except-finally 語句 227
10.9.2 with 語句 228
10.10 試一試:刪除某一類型檔案 229
10.11 試一試:批量修改檔案名稱 230
10.12 小結 232
第 11 章 正則表達式 233
11.1 正則表達式的使用 234
11.2 元字元 235
11.3 連線符 236
11.4 限定符 237
11.5 定位符 238
11.6 分組符 239
11.7 選擇符 242
11.8 轉義字元 243
11.9 不區分大小寫的匹配 243
11.10 貪心與非貪心 244
11.11 sub() 245
11.12 match() 和 search() 246
11.13 試一試:匹配手機號碼 248
11.14 試一試:匹配日期 248
11.15 試一試:匹配身份證號碼 249
11.16 試一試:匹配 E-mail 地址 249
11.17 小結 250
第 12 章 可疊代對象、疊代器與生成器 252
12.1 兩種循環 252
12.2 可疊代對象 253
12.3 疊代器 255
12.4 生成器 257
12.4.1 基本語法 257
12.4.2 元組生成器 258
12.5 內置函式 259
12.5.1 enumerate() 函式 259
12.5.2 reversed() 函式 260
12.5.3 sorted() 函式 262
12.6 小結 266
第 13 章 解包與壓包 267
13.1 解包 267
13.1.1 解包概述 268
13.1.2 * 和 ** 270
13.1.3 元組解包 276
13.1.4 函式形參:*args 和 **kwargs 277
13.2 壓包 278
13.3 小結 280
第 14 章 函式式編程 281
14.1 高階函式 281
14.1.1 filter() 282
14.1.2 map() 283
14.1.3 reduce() 284
14.2 lambda 表達式 286
14.2.1 用於簡化函式 286
14.2.2 用於回調函式 288
14.2.3 用於列表推導式 289
14.3 裝飾器 290
14.4 小結 292
第 2 部分 項目開發
第 15 章 圖像處理 294
15.1 必備基礎 294
15.1.1 顏色值 294
15.1.2 像素 296
15.1.3 坐標系 296
15.1.4 圖片格式 296
15.2 圖片操作 298
15.2.1 創建區域:Image.new() 300
15.2.2 改變大小:resize() 301
15.2.3 切割圖片:crop() 302
15.2.4 旋轉圖片:rotate() 303
15.2.5 翻轉圖片:transpose() 304
15.2.6 複製貼上:copy()、paste() 305
15.3 繪製圖形 307
15.3.1 點 307
15.3.2 直線 308
15.3.3 矩形 309
15.3.4 多邊形 311
15.3.5 弧線 312
15.3.6 圓、橢圓或扇形 315
15.4 繪製文本 318
15.4.1 基本語法 318
15.4.2 設定字型 319
15.5 圖片美化 321
15.6 項目:批量處理圖片 323
第 16 章 自動化辦公 328
16.1 操作 CSV 檔案 328
16.1.1 讀取 CSV 檔案 329
16.1.2 寫入 CSV 檔案 331
16.2 操作 Excel 檔案 333
16.3 操作 PPT 檔案 337
16.3.1 創建 PPT 檔案 337
16.3.2 往占位符插入元素 339
16.3.3 往幻燈片中插入元素 342
16.3.4 PPT 母版 345
16.4 項目:自動生成 PPT 檔案 348
第 17 章 網路爬蟲 352
17.1 網頁基礎 352
17.1.1 HTML 簡介 352
17.1.2 CSS 簡介 353
17.1.3 JavaScript 簡介 355
17.2 請求網頁:Requests 庫 356
17.2.1 HTTP 請求 356
17.2.2 添加請求頭 359
17.3 提取數據:BeautifulSoup 庫 361
17.3.1 prettify() 方法 362
17.3.2 select() 方法 363
17.4 提取數據:Lxml 庫 366
17.5 項目:爬取“豆瓣電影 Top 250” 369
第 18 章 數據分析 375
18.1 數據分析學些什麼 375
18.2 Pandas 概述 375
18.3 DataFrame 376
18.3.1 創建 DataFrame 376
18.3.2 訪問數據 379
18.4 讀寫檔案 380
18.4.1 讀寫 CSV 380
18.4.2 讀寫 Excel 檔案 383
18.5 布爾選擇 386
18.6 字元串處理 388
18.7 統計函式 390
18.8 數據分組 392
18.8.1 groupby() 函式 392
18.8.2 統計分析 395
18.9 數據清洗 395
18.9.1 重複值 396
18.9.2 缺失值 399
18.9.3 異常值 403
18.10 項目:對企鵝數據進行分析 405
第 19 章 數據可視化 411
19.1 Matplotlib 概述 411
19.2 繪製折線圖 412
19.3 通用設定 414
19.3.1 主題風格 414
19.3.2 定義標題 416
19.3.3 定義圖例 418
19.3.4 刻度標籤 420
19.3.5 刻度範圍 423
19.4 散點圖 424
19.5 柱形圖 427
19.6 箱線圖 429
19.7 其他繪圖函式 432
19.8 項目:餐廳營業的可視化 433
第 20 章 資料庫操作 437
20.1 操作 SQLite 437
20.1.1 創建資料庫 437
20.1.2 增刪查改 439
20.2 操作 MySQL 443
20.2.1 使用 Navicat for MySQL 443
20.2.2 運算元據庫 451
20.3 操作 MongoDB 453
20.3.1 啟動 MongoDB 服務 453
20.3.2 運算元據庫 454
20.3.3 增刪查改 455
20.4 項目:操作員工信息表 460
第 21 章 郵件傳送 465
21.1 開發準備 465
21.2 傳送純文本格式的郵件 466
21.3 傳送 HTML 格式的郵件 470
21.4 傳送帶附屬檔案的郵件 472
21.4.1 附屬檔案為“純文本類型” 472
21.4.2 附屬檔案為“二進制類型” 474
21.5 項目:給會員傳送郵件 476
第 22 章 GUI 編程 484
22.1 tkinter 概述 484
22.2 標籤(Label) 485
22.2.1 基本語法 485
22.2.2 使用內置圖片 489
22.3 普通按鈕(Button) 490
22.4 通用設定 492
22.4.1 樣式定義 493
22.4.2 布局位置 496
22.5 複選按鈕(Checkbutton) 504
22.6 單選按鈕(Radiobutton) 508
22.7 分組框(LabelFrame) 510
22.8 文本框(Entry) 511
22.9 選單(Menu) 514
22.10 訊息文本(Message) 516
22.11 提示框 518
22.12 項目:簡易計算器 520
第 23 章 滑鼠鍵盤自動化 525
23.1 必備基礎 525
23.1.1 螢幕坐標 525
23.1.2 滑鼠與鍵盤 526
23.2 控制滑鼠 526
23.2.1 移動滑鼠 527
23.2.2 單擊滑鼠 528
23.2.3 拖拽滑鼠 530
23.2.4 滾動滑鼠 531
23.3 鍵盤操作 531
23.3.1 輸入文本 532
23.3.2 敲擊按鍵 533
23.3.3 使用組合鍵 535
23.3.4 輸入中文 535
23.4 其他功能 536
23.4.1 螢幕截圖 536
23.4.2 提示框 536
23.4.3 圖片定位 539
23.5 項目:微信批量傳送訊息 540
第 24 章 程式打包 544
24.1 PyInstaller 概述 544
24.2 PyInstaller 的用法 544
24.3 高級打包 546
24.4 自定義圖示 547
24.5 去掉命令行視窗 548
24.6 項目:將簡易計算器程式打包 548