從0到1——Python快速上手
莫振傑
相關主題
商品描述
作者根據自己多年的前後端開發經驗,站在完全零基礎讀者的角度,詳盡介紹了Python編程語言的基礎知識,以及大量的開發技巧,包括Python語基本語法、運算符與表達式、流程控制語句、列表與元組、字符串、字典與集合、Python中使用正則表達式、函數、數值計算、時間日期等。所有知識都結合具體實例進行介紹,涉及的程序代碼都給出了詳細的註釋,讀者可輕松領會Python程序開發的精髓,快速提升開發技能。每章最後還提供了難度適中的習題,檢驗學習效果。
作者簡介
莫振杰,全栈工程师,涉猎包括前端、后端、Python等多个领域,熟练掌握JavaScript、Vue、React、Node.js、Python、SQL等多门技术。拥有一个非常受欢迎的个人网站:绿叶学习网,用于分享开发经验以及各种技术。
他还是多本图书的作者,凭着“从0到1”系列图书,曾获得“人民邮电出版社IT图书2020年最具影响力作者”。
目錄大綱
目 錄
第 1部分 基礎篇
第 1章 認識Python 3
1.1 Python簡介 3
1.1.1 Python是什麽? 3
1.1.2 Python能乾什麽? 4
1.1.3 Python有什麽特點? 5
1.2 教程介紹 5
1.2.1 Python版本 5
1.2.2 初學者關心的問題 6
1.3 安裝Python 6
1.3.1 Windows系統 7
1.3.2 Mac系統 8
1.4 使用IDLE 9
1.4.1 IDLE的簡單使用 10
1.4.2 保存代碼到文件 11
1.5 使用VS Code 13
1.5.1 安裝VS Code 13
1.5.2 安裝插件 14
1.5.3 運行代碼 15
1.6 使用PyCharm 17
1.6.1 安裝PyCharm 18
1.6.2 安裝插件 19
1.6.3 運行代碼 20
1.7 本章練習 24
第 2章 語法基礎 25
2.1 語法簡介 25
2.2 變量與常量 26
2.2.1 變量 26
2.2.2 常量 29
2.3 數據類型 30
2.3.1 數字 30
2.3.2 字符串 31
2.3.3 判斷類型 33
2.4 運算符 33
2.4.1 算術運算符 34
2.4.2 賦值運算符 35
2.4.3 比較運算符 35
2.4.4 邏輯運算符 36
2.4.5 成員運算符 38
2.4.6 身份運算符 39
2.5 表達式與語句 40
2.6 類型轉換 40
2.6.1 數字轉換為字符串 40
2.6.2 字符串轉換為數字 41
2.6.3 整數與浮點數互轉 42
2.7 轉義字符 43
2.8 註釋 44
2.8.1 單行註釋 44
2.8.2 多行註釋 45
2.8.3 編碼註釋 46
2.9 輸出內容:print() 46
2.9.1 語法簡介 46
2.9.2 常用參數 47
2.10 輸入內容:input() 48
2.11 運算符優先級 49
2.11.1 優先級介紹 49
2.11.2 最佳實踐 51
2.12 實戰題:交換兩個變量的值 52
2.13 實戰題:交換個位和十位 52
2.14 本章練習 53
第3章 流程控制 55
3.1 流程控制簡介 55
3.1.1 順序結構 55
3.1.2 選擇結構 56
3.1.3 循環結構 56
3.2 選擇結構:if 57
3.2.1 單向選擇:if 57
3.2.2 雙向選擇:if...else... 59
3.2.3 多向選擇:if...elif...else... 60
3.2.4 if語句的嵌套 60
3.3 循環結構:while 62
3.4 循環結構:for 64
3.4.1 for循環 64
3.4.2 range() 65
3.5 break和continue 67
3.5.1 break 67
3.5.2 continue 68
3.6 實戰題:找出水仙花數 69
3.7 實戰題:求0~100中的所有質數 69
3.8 實戰題:輸出一個圖案 70
3.9 本章練習 71
第4章 列表與元組 73
4.1 列表是什麽? 73
4.2 列表的創建 74
4.3 基本操作 74
4.3.1 獲取元素 74
4.3.2 修改元素 76
4.3.3 增加元素 76
4.3.4 刪除元素 78
4.4 獲取列表長度:len() 81
4.5 獲取元素出現次數:count() 82
4.6 獲取元素下標:index() 83
4.7 合並列表:extend() 84
4.8 清空列表 85
4.9 截取列表:[m:n] 85
4.10 遍歷列表:for...in... 87
4.10.1 遍歷列表中的每一項 87
4.10.2 獲得索引 88
4.11 檢索列表:in、not in 89
4.12 顛倒順序:reverse() 89
4.13 大小排序:sort() 90
4.14 數值計算:max()、min()、sum() 91
4.15 將列表轉換為字符串:join() 91
4.16 列表運算 92
4.17 二維列表 93
4.18 元組是什麽? 94
4.18.1 元組介紹 94
4.18.2 元組操作 96
4.19 實戰題:求列表中的最大值 97
4.20 實戰題:輸出星期數 98
4.21 本章練習 99
第5章 字符串 102
5.1 字符串是什麽? 102
5.1.1 多行字符串 102
5.1.2 原始字符串 103
5.2 獲取某一個字符 104
5.3 獲取字符串長度 105
5.4 統計字符的個數:count() 106
5.5 獲取字符的下標:index() 106
5.6 截取字符串:[m:n] 107
5.7 替換字符串:replace() 109
5.8 分割字符串 110
5.9 去除首尾符號 112
5.10 大小寫轉換 112
5.10.1 lower()和upper() 112
5.10.2 swapcase() 113
5.11 檢索字符串 114
5.11.1 find() 114
5.11.2 startswith()和endswith() 115
5.11.3 深入瞭解 116
5.12 拼接字符串 116
5.12.1 %s 117
5.12.2 format() 117
5.13 類型轉換 118
5.13.1 list() 118
5.13.2 tuple() 119
5.14 字符串的運算 120
5.15 實戰題:統計單詞的個數 121
5.16 實戰題:將首字母轉換成大寫 121
5.17 本章練習 122
第6章 字典與集合 124
6.1 字典是什麽? 124
6.2 字典的創建 125
6.3 基本操作 125
6.3.1 獲取某個鍵的值 125
6.3.2 修改某個鍵的值 126
6.3.3 增加鍵值對 126
6.3.4 刪除鍵值對 127
6.4 獲取字典的長度 127
6.5 清空字典 128
6.6 復制字典 128
6.7 檢索字典 129
6.8 獲取鍵或值 129
6.8.1 keys() 130
6.8.2 values() 131
6.8.3 items() 132
6.9 集合是什麽? 133
6.9.1 集合介紹 133
6.9.2 基本操作 134
6.9.3 集合操作 135
6.9.4 應用場景 136
6.10 實戰題:統計數字出現的次數 137
6.11 實戰題:統計出現次數最多的字母 137
6.12 本章練習 138
第7章 初識函數 140
7.1 函數是什麽? 140
7.2 函數的定義 142
7.2.1 沒有返回值的函數 142
7.2.2 有返回值的函數 143
7.2.3 全局變量與局部變量 144
7.3 函數的調用 145
7.3.1 直接調用 145
7.3.2 在表達式中調用 146
7.4 函數參數 147
7.4.1 形參和實參 147
7.4.2 參數可以是任何類型 147
7.5 嵌套函數 148
7.6 內置函數 149
7.6.1 內置函數介紹 149
7.6.2 統計函數 150
7.7 實戰題:判斷某一年是否為閏年 152
7.8 實戰題:冒泡排序 152
7.9 本章練習 153
第8章 數學計算 155
8.1 數學計算簡介 155
8.2 求絕對值 157
8.3 四捨五入 157
8.4 取整運算 158
8.4.1 向上取整:ceil() 158
8.4.2 向下取整:floor() 159
8.5 平方根與冪運算 160
8.6 圓周率 161
8.7 三角函數 162
8.8 生成隨機數 163
8.8.1 隨機整數 164
8.8.2 隨機浮點數 165
8.8.3 隨機序列 166
8.9 實戰題:生成隨機驗證碼 168
8.10 本章練習 169
第9章 日期時間 171
9.1 日期時間簡介 171
9.2 time模塊 172
9.2.1 獲取日期時間 172
9.2.2 格式化日期時間 173
9.2.3 struct_time元組 175
9.3 datetime模塊 177
9.3.1 獲取日期時間 177
9.3.2 設置日期時間 179
9.4 實戰題:自定義日期時間格式 180
9.5 實戰題:計算函數執行時間 181
9.6 本章練習 182
第 2部分 提高篇
第 10章 面向對象 185
10.1 面向對象是什麽? 185
10.2 類和對象 186
10.3 構造函數:_ _init_ _() 188
10.4 類屬性和實例屬性 190
10.5 類方法和實例方法 192
10.6 靜態方法 193
10.7 繼承 194
10.8 實戰題:封裝一個矩形類 196
10.9 實戰題:封裝一個時間類 197
10.10 本章練習 198
第 11章 包與模塊 200
11.1 包和模塊簡介 200
11.1.1 包是什麽? 200
11.1.2 模塊是什麽? 201
11.2 自定義包 201
11.3 自定義模塊 202
11.4 以主程序形式執行 204
第 12章 文件操作 206
12.1 文件操作簡介 206
12.2 文件路徑 206
12.2.1 絕對路徑 207
12.2.2 相對路徑 207
12.3 讀取文件 208
12.3.1 讀取所有內容:read() 208
12.3.2 逐行讀取內容:readlines() 209
12.4 寫入文件 211
12.4.1 以覆蓋方式寫入文件 211
12.4.2 以追加方式寫入文件 213
12.5 os模塊 214
12.5.1 獲取工作目錄 214
12.5.2 改變工作目錄 215
12.5.3 列舉所有文件 216
12.5.4 重命名文件 217
12.5.5 遍歷文件 217
12.5.6 拼接文件路徑 219
12.5.7 獲取文件大小 220
12.5.8 判斷文件或文件夾是否存在 221
12.5.9 獲取文件時間 222
12.6 異常處理 223
12.6.1 try...except...finally...語句 223
12.6.2 with語句 224
12.7 shutil模塊 225
12.7.1 復制文件與文件夾 225
12.7.2 移動文件與文件夾 226
12.7.3 刪除文件與文件夾 227
12.8 send2trash模塊 228
12.9 zipfile模塊 229
12.9.1 讀取文件 229
12.9.2 解壓文件 230
12.9.3 壓縮文件 231
12.10 實戰題:讀寫.txt文件 233
12.11 實戰題:刪除某一類型的文件 234
12.12 實戰題:批量修改文件名 235
12.13 本章練習 236
第 13章 文件格式 238
13.1 文件格式簡介 238
13.2 JSON文件 238
13.2.1 JSON介紹 238
13.2.2 操作JSON數據 239
13.2.3 操作JSON文件 241
13.3 CSV文件 243
13.3.1 CSV介紹 243
13.3.2 操作CSV文件 244
13.4 Excel文件 248
13.4.1 Excel介紹 248
13.4.2 讀取Excel文件 248
13.5 實戰題:逆序輸出 253
13.6 本章練習 254
第 14章 異常處理 255
14.1 異常是什麽? 255
14.1.1 異常介紹 255
14.1.2 常見異常 255
14.2 處理異常 257
14.2.1 try...except...語句 257
14.2.2 else子句 261
14.2.3 finally子句 261
14.3 深入瞭解 263
14.3.1 低級錯誤 263
14.3.2 中級錯誤 263
14.3.3 高級錯誤 264
14.4 本章練習 265
第 15章 正則表達式 266
15.1 正則表達式是什麽? 266
15.2 正則表達式的使用 267
15.3 元字符 268
15.4 連接符 269
15.5 限定符 270
15.6 定位符 271
15.7 分組符 272
15.8 選擇符 273
15.9 轉義字符 274
15.10 不區分大小寫的匹配 275
15.11 貪心與非貪心 275
15.12 sub() 276
15.13 match()和search() 277
15.14 實戰題:匹配手機號碼 279
15.15 實戰題:匹配身份證號碼 279
15.16 本章練習 280
第3部分 應用篇
第 16章 圖像處理 285
16.1 應用技術簡介 285
16.2 Pillow庫 285
16.2.1 Pillow庫介紹 285
16.2.2 顏色值 286
16.2.3 像素 287
16.2.4 坐標系 287
16.3 圖片操作 288
16.3.1 創建區域:Image.new() 290
16.3.2 改變大小:resize() 291
16.3.3 切割圖片:crop() 291
16.3.4 旋轉圖片:rotate() 292
16.3.5 翻轉圖片:transpose() 293
16.3.6 復制和粘貼:copy()、paste() 294
16.4 繪制圖形 295
16.4.1 點 296
16.4.2 直線 297
16.4.3 矩形 298
16.4.4 多邊形 299
16.4.5 圓弧 300
16.4.6 扇形 302
16.4.7 圓或橢圓 303
16.5 繪制文本 305
16.5.1 文本的繪制方法 305
16.5.2 設置字體 306
16.6 圖片美化 307
第 17章 數據可視化 310
17.1 數據可視化簡介 310
17.2 拆線圖 311
17.2.1 基本語法 311
17.2.2 自定義樣式 314
17.3 通用設置 319
17.3.1 定義標題 320
17.3.2 定義圖例 322
17.3.3 畫布樣式 323
17.3.4 坐標軸刻度 323
17.3.5 坐標軸範圍 326
17.3.6 網格線 327
17.3.7 描述文本 329
17.3.8 添加註釋 330
17.4 通用樣式參數 332
17.5 柱狀圖 332
17.5.1 基本語法 332
17.5.2 高級繪圖 333
17.6 直方圖 336
17.6.1 基本語法 336
17.6.2 自定義樣式 338
17.7 餅狀圖 339
17.7.1 基本語法 339
17.7.2 自定義樣式 340
17.8 散點圖 344
17.8.1 基本語法 344
17.8.2 自定義樣式 345
17.9 面積圖 347
17.9.1 基本語法 347
17.9.2 高級繪圖 348
17.10 子圖表 349
17.11 實戰題:從CSV文件中讀取數據並
繪圖 352
第 18章 數據庫操作 354
18.1 數據庫簡介 354
18.2 操作SQLite 354
18.2.1 創建數據庫 355
18.2.2 增刪查改操作 356
18.3 操作MySQL 360
18.3.1 安裝MySQL 360
18.3.2 安裝Navicat for MySQL 364
18.3.3 操作數據庫 368
18.4 操作MongoDB 370
18.4.1 安裝MongoDB 370
18.4.2 連接MongoDB 374
18.4.3 操作數據庫 375
18.4.4 增刪查改操作 376
第 19章 GUI編程 384
19.1 tkinter簡介 384
19.2 文本與圖片 385
19.2.1 Label組件介紹 385
19.2.2 Label組件的樣式參數 387
19.2.3 使用內置圖片 388
19.3 Button組件 389
19.4 復選框 391
19.5 單選按鈕 393
19.6 分組框 395
19.7 文本框 396
19.8 列表框 397
第 20章 電子郵件 399
20.1 電子郵件簡介 399
20.2 發送純文本格式的郵件 401
20.3 發送HTML格式的郵件 404
20.4 發送帶附件的郵件 406
20.4.1 附件為文本類型 406
20.4.2 附件為其他類型 408
附錄A Python關鍵字 411
附錄B 數據類型 412
附錄C 運算符優先級 413
附錄D 列表常用的方法 414
附錄E 字符串常用的方法 415
附錄F 字典常用的方法 416
附錄G 數學運算 417
附錄H Python模塊 418
後記 419