內容簡介
《輕鬆學Python編程》採用簡單直白的語言、生動的比喻,循循善誘、深入淺出地介紹了Python的基本知識和有關套用方式。第1~第8章介紹了Python的基礎知識,內容包括Python簡介、Python的下載與安裝、Python自帶開發工具IDLE的使用、編程有關專業辭彙和概念、Python中的基本數據類型、Python中的流程控制、Python的函式與模組;第9~第16章介紹了編程的進階知識,內容包括面向對象編程、檔案操作、資料庫操作、錯誤與異常處理、測試與調試、GUI圖形界面編程、並發編程、網路編程等;第17~第20章通過4個綜合案例講解Python的實戰套用;第21章介紹了專業開發環境Pycharm的使用。
圖書目錄
第1章 人生苦短,我用Python!——Python簡介
1.1 英明的決定 1
1.2 做一點準備 7
1.2.1 安裝Python就這么簡單 7
1.2.2 工欲善其事,IDLE 11
1.3 終於要開始寫代碼了,好嗨喲! 12
1.3.1 第一個Python程式:Hello world! 13
1.3.2 舉一反三:隨便Hello點啥 15
第2章 熱身運動——了解一些基本概念
2.1 來點兒變化:變數 17
2.1.1 變數的賦值與使用 18
2.1.2 變數命名規則 20
2.1.3 Python中的變數只是一個標籤 21
2.2 互動起來:輸出與輸入 23
2.2.1 內置函式簡介 23
2.2.2 輸出print() 24
2.2.3 輸入input() 26
2.3 無規矩不成方圓:注釋與編碼規則 27
2.3.1 注釋 27
2.3.2 縮進與空行 31
2.3.3 參考PEP8 32
2.4 物以類聚:Python數據類型簡介 34
2.4.1 六種基本數據類型簡介 34
2.4.2 數據類型的判斷 35
2.4.3 容器、序列、疊代、可疊代對象 36
2.4.4 布爾值 37
第3章 數字和數學並不可怕——數據類型之數字
3.1 數字雖多,不過三類 39
3.1.1 整數 39
3.1.2 浮點數 41
3.1.3 複數 41
3.1.4 eval()函式與exec()函式 42
3.1.5 進制與進制轉換 43
3.2 國小數學都學過——運算符與表達式 44
3.2.1 算數運算符 45
3.2.5 各種運算符的混合使用與優先權 48
3.3 再也不用怕數學了:數學函式與math模組 49
3.3.1 數學函式 49
3.3.2 math模組 50
3.3.3 random模組 53
3.3.4 案例:做一個機選彩票的程式 54
第4章 字元串也是一種“串兒”——數據類型之字元串
4.1 字元串是一種什麼串兒? 55
4.1.1 字元串的三種形式 55
4.1.2 字元串的索引 58
4.1.3 字元串的判斷 59
4.1.4 轉義字元與原始字元串 60
4.2 字元串的N種“食用方法” 62
4.2.1 字元串的切片 62
4.2.2 字元串的運算 64
4.2.3 處理字元串的有關函式 67
4.2.4 字元串的有關方法 68
4.2.5 字元串的格式化輸出 71
4.3 正則表達式 71
4.3.1 正則表達式基礎 72
4.3.2 正則表達式的套用 73
4.3.3 re模組 75
4.3.4 案例:驗證手機號是否合法 77
第5章 讓程式更聽話——流程控制與if分支
5.1 送你一根指揮棒:流程控制簡介 78
5.2 隨機應變:if分支 80
5.2.1 if分支的幾種結構 80
5.2.2 if結構的嵌套 84
5.2.3 多個if與多個elif的區別 86
5.2.4 pass語句 87
第6章 一句頂一萬句——循環
6.1 初學編程我寫了一萬行代碼,後來我學會了用循環 90
6.1.1 for循環結構 90
6.1.2 range()函式 92
6.1.3 break與continue 93
6.1.4 使用for循環遍歷列表和字典 94
6.1.5 for循環嵌套 94
6.2 更“聰明”的while循環 95
6.2.1 while循環結構 95
6.2.2 while循環與else配合使用 97
6.2.3 在while循環中使用break 98
6.2.4 在while循環中使用continue 98
6.2.5 小心死循環 99
6.2.6 while循環嵌套 100
6.2.7 用while循環實現一個猜數字遊戲 101
6.2.8 while循環和for循環混合使用 102
6.2.9 while循環與for循環之比較 103
第7章 我們也是有組織的——列表、元組、集合、字典
7.1 列車就是一列車,列表就是一列表 104
7.1.1 創建列表 104
7.1.2 列表的索引 105
7.1.3 列表的切片 105
7.1.4 列表的遍歷 106
7.1.5 列表元素的修改、插入與刪除 106
7.1.6 列表的複製 107
7.1.7 列表元素的判斷 108
7.1.8 列表的嵌套 109
7.1.9 二維列表的遍歷 110
7.1.10 列表的運算 110
7.1.11 操作列表的有關函式 111
7.1.12 列表的有關方法 112
7.1.13 列表解析式與生成器表達式 114
7.2 比列表“頑固”的元組 115
7.2.1 元組的創建 116
7.2.2 元組的索引、切片、刪除、複製、遍歷 116
7.2.3 元組的運算與判斷 117
7.2.4 操作元組的有關函式 118
7.2.5 元組的有關方法 119
7.2.6 二維元組 120
7.3 字典,就像你用過的字典 120
7.3.1 字典的創建 121
7.3.2 字典元素的訪問 121
7.3.3 字典元素的修改、添加與刪除 122
7.3.4 字典的遍歷 123
7.3.5 字典的嵌套與二維字典 124
7.3.6 操作字典的有關函式 125
7.3.7 字典的有關方法 126
7.3.8 深複製與淺複製 127
7.3.9 用字典實現多重分支 128
7.4 集合:搞搞關係 129
7.4.1 集合的創建 129
7.4.2 集合的遍歷、判斷與刪除 129
7.4.3 集合的關係判斷和運算 130
7.4.4 操作集合的有關函式 131
7.4.5 集合的有關方法 132
第8章 掌握核心科技——函式與模組
8.1 自製工具:自定義函式 135
8.1.1 函式的定義與調用 135
8.1.2 形參、實參、位置參數、關鍵字參數 136
8.1.3 參數的默認值 137
8.1.4 傳遞多個參數 138
8.1.5 傳遞列表或字典作為參數 139
8.1.6 函式的返回值 140
8.1.7 用函式實現一個猜數字遊戲 140
8.1.8 變數的作用域 141
8.1.9 函式的嵌套 142
8.1.10 遞歸函式 143
8.1.11 匿名函式:lambda表達式 145
8.1.12 高階函式:map()、filter() 145
8.1.13 閉包 146
8.1.14 裝飾器 147
8.2 工具箱:模組 149
8.2.1 將自定義函式存儲為模組 149
8.2.2 模組的導入與使用 150
8.2.3 if__name__=="__main__": 152
第9章 單身狗的渴望——面向對象編程
9.1 物以類聚,人以群分 154
9.1.1 創建一個類 154
9.1.2 實例化一個對象 156
9.1.3 訪問、修改類和對象的屬性與方法 157
9.1.4 封裝:私有屬性和私有方法 159
9.1.5 繼承:祖傳秘方 161
9.1.6 多繼承與多重繼承 163
9.1.7 多態:各自表述 165
9.1.8 將類存儲為模組 166
9.1.9 類模組的使用 167
9.2 模組、包、庫,傻傻分不清楚? 167
9.2.1 包的創建與使用 167
9.2.2 模組、包、庫的區別 168
9.2.3 Python標準庫 169
9.3 給各種包找個管家:pip 169
9.3.1 pip的使用環境 169
9.3.2 包的安裝與升級 170
9.3.3 包的查詢與卸載 171
第10章 讓滑鼠休息一會兒——檔案操作
10.1 檔案讀寫 173
10.1.1 檔案的打開、讀取與關閉 173
10.1.2 檔案的逐行讀取與部分讀取 174
10.1.3 查看指針位置與修改指針位置 176
10.1.4 寫入檔案內容 177
10.2 os模組 178
10.2.1 目錄操作 179
10.2.2 檔案操作 180
10.2.3 Linux系統下的許可權操作 183
10.3 shutil模組 183
第11章 讓我們一起囤積數據吧——資料庫操作
11.1 資料庫 187
11.1.1 資料庫簡介 187
11.1.2 SQL語句簡介 189
11.1.3 DB-API簡介 191
11.2 Python操作SQLite資料庫 194
11.2.1 sqlite3模組的使用 194
11.2.2 數據表的創建、改名與數據的添加 195
11.2.3 數據的查詢、修改與刪除 197
11.2.4 查看錶信息與刪除表 199
11.3.1 下載安裝MySQL 202
11.3.2 使用mysql.connector模組操作MySQL資料庫 211
第12章 人非聖賢,孰能無過——錯誤與異常處理
12.1 錯誤與異常 215
12.1.1 錯誤與常見錯誤 215
12.1.2 異常類 218
12.2 異常處理 220
12.2.1 異常的獲取與處理 221
12.2.2 使用raise語句自主拋出異常 223
12.2.3 使用自定義異常類 224
第13章 是騾子是馬拉出來遛遛——調試與測試
13.1 調試 226
13.1.1 簡單的調試方法 226
13.1.2 IDLE自帶調試工具的使用 228
13.2 測試 233
13.2.1 單元測試與測試用例 233
13.2.2 unittest模組的使用 234
第14章 程式也要面子——GUI編程
14.1 GUI簡介 237
14.2 Python內置GUI模組:Tkinter 238
14.2.1 使用Tkinter模組創建一個界面程式 238
14.2.2 視窗、控制項、事件、事件處理函式 239
14.2.3 控制項布局方式 248
14.3 案例:圖形版猜數字遊戲 255
第15章 人多力量大——並發編程
15.1 進程與執行緒 257
15.1.1 並發與並行 257
15.1.2 多進程與多執行緒 258
15.1.3 同步、異步、阻塞、非阻塞 259
15.2 多進程的使用 260
15.2.1 創建和調用子進程 261
15.2.2 通過繼承Process類來創建多個進程 263
15.2.3 通過進程池Pool來創建多進程 263
15.3 多執行緒的使用 266
15.3.1 使用treading模組創建多執行緒 266
15.3.2 通過實例化Thread類來創建執行緒 267
15.3.3 執行緒池 267
15.3.4 執行緒間通信 268
15.3.5 執行緒安全 269
第16章 三天打魚 天天上網——網路編程
16.1 網路基礎 270
16.1.1 網路的硬體基礎 270
16.1.2 網路模型 271
16.1.3 網路協定 272
16.1.4 域名、DNS、URL 273
16.1.5 客戶端與伺服器 274
16.1.6 Socket與socket模組 274
16.2 Web入門 276
16.2.1 超文本與超連結 276
16.3 網路模組:urllib 281
16.3.1 request模組 281
16.3.2 error模組 283
16.3.3 parse模組 284
16.3.4 robotparser模組 285
第17章 實戰項目一:讓Python當你的工作助手
17.1 批量處理圖片 287
17.1.1 pillow庫簡介 287
17.1.2 案例:批量調整圖片大小 290
17.2 讀寫Word文檔 293
17.2.1 python-docx庫簡介 293
17.2.2 文檔寫入操作 294
17.2.3 文檔合併操作 297
17.3 處理Excel 299
17.3.1 openpyxl庫 299
17.3.2 操作Excel表格 300
第18章 實戰項目二:這個蟲子有點牛——網路爬蟲開發
18.1 網路爬蟲簡介 303
18.1.1 網路爬蟲基本原理 303
18.2 requests庫 305
18.2.1 requests庫的常用方法 306
18.2.2 用requests庫爬取一個簡單網頁 307
18.3實戰:爬取百度圖片 310
第19章 實戰項目三:你的遊戲你做主——小遊戲開發
19.1 Pygame庫 318
19.1.1 Pygame庫簡介 318
19.1.2 Display模組 321
19.1.3 Surface模組 322
19.1.4 圖形對象的常用方法 326
19.2 案例:製作一個貪吃蛇遊戲 327
第20章 實戰項目四:確認過眼神,我遇見對的人——AI人臉識別
20.1 人工智慧簡介 334
20.2 開放平台與API接口 336
20.3 案例:一個人臉識別與打分項目——Python看臉 340
20.3.1 Access Token 340
20.3.2 Base64編碼 341
20.3.3 json數據格式 344
20.3.4 案例:Python看臉 345
第21章 工欲善其事,換個IDE?——PyCharm
21.1 PyCharm 349
21.1.1 PyCharm下載與安裝 349
21.1.2 第一次使用PyCharm 354
21.2 用PyCharm寫一個聊天程式 363
作者簡介
王春傑,技術博主,網路作家(筆名“
春天傑作”),微博簽約自媒體人。擁有十餘年Web開發、網路推廣等網際網路行業經驗,熟悉Python、C、PHP等程式語言技術。曾在教育培訓機構工作多年,目前創業中,主要從事網路與軟體開發、自媒體運營,以及Python編程技術的推廣和培訓等工作。