從0到1 Python即學即用
莫振傑
買這商品的人也買了...
相關主題
商品描述
本書是幫助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