Python 從菜鳥到高手, 2/e
李寧
- 出版商: 清華大學
- 出版日期: 2022-11-01
- 定價: $570
- 售價: 8.5 折 $485
- 語言: 簡體中文
- ISBN: 730261394X
- ISBN-13: 9787302613947
-
相關分類:
Python、程式語言、Data Science
立即出貨 (庫存 < 4)
買這商品的人也買了...
-
$534$507 -
$811統計學習要素:機器學習中的數據挖掘、推斷與預測, 2/e (The Elements of Statistical Learning: Data Mining, Inference, and Prediction, 2/e)
-
$470計算機視覺中的深度學習
-
$620$490 -
$449深入淺出 OpenHarmony — 架構、內核、驅動及應用開發全棧
-
$407OpenCV 圖像處理入門與實踐
-
$600$468 -
$658HarmonyOS應用開發實戰(JavaScript版)
-
$458鴻蒙應用開發從零基礎到實戰——始於安卓,成於鴻蒙(視頻·案例·應用版)
-
$600$468 -
$620$490 -
$600$468 -
$720$569 -
$600$474 -
$520$411 -
$534$507 -
$650$507 -
$708沉浸式剖析 OpenHarmony 源代碼:基於 LTS 3.0 版本
-
$480$374 -
$500$390 -
$780$663 -
$590$466 -
$580$435 -
$650$514 -
$390$308
相關主題
商品描述
本書從實戰角度系統講解了Python核心知識點以及Python在Web開發、數據分析、網絡爬蟲、桌面應用等領域的各種應用實踐。本書用超過10萬行代碼、500個案例完美演繹了Python在各個領域的出色表現,每一個案例都擁有詳細的實現步驟,帶領讀者由淺入深系統掌握Python語言的核心以及Python全棧開發的技能。本書分為四篇,共26章,介紹Python基礎、存儲解決方案、網絡與並發和Python高級技術等內容。 本書適用於零基礎的初學者,適合作為高等院校教材,也適合想掌握Python開發的程序員以及所有對Python感興趣的技術人員參考。
目錄大綱
目錄
第一篇 Python基礎知識
第1章 Python入門 3
1.1 搭建Python編程環境 3
1.1.1 獲取Python安裝包 3
1.1.2 安裝Windows版的Python安裝包 4
1.1.3 安裝macOS版的Python安裝包 4
1.1.4 安裝Linux版的Python安裝包 4
1.2 搭建和使用PyCharm 5
1.2.1 下載和安裝PyCharm 5
1.2.2 創建PyCharm Python工程 6
1.2.3 在PyCharm中添加Python環境 7
1.2.4 在PyCharm中運行Python程序 9
1.3 Python中的REPL環境 9
1.4 第一個Python程序 10
1.5 調試Python程序 10
1.6 實戰與演練 12
1.7 本章小結 12
第2章 Python語言基礎 13
2.1 運行helloworld.py會發生什麽情況 13
2.2 變量 14
2.2.1 變量的定義和初始化 14
2.2.2 變量的命名 15
2.2.3 避免弄錯變量名 16
2.2.4 如何理解變量 17
2.3 字符串基礎 18
2.3.1 單引號字符串和轉義符 18
2.3.2 拼接字符串 19
2.3.3 保持字符串的原汁原味 20
2.3.4 長字符串 21
2.4 數字 22
2.4.1 基礎知識 22
2.4.2 大整數 23
2.4.3 二進制、八進制和十六進制 24
2.4.4 數字的格式化輸出 25
2.5 獲取用戶輸入 26
2.6 註釋 26
2.7 實戰與演練 27
2.8 本章小結 28
第3章 條件與循環 29
3.1 條件和條件語句 29
3.1.1 布爾(Boolean)值和布爾變量 29
3.1.2 條件語句(if、else和elif) 30
3.1.3 嵌套代碼塊 32
3.1.4 比較運算符 33
3.1.5 斷言 35
3.1.6 pass語句與空代碼塊 36
3.2 循環 37
3.2.1 while循環 37
3.2.2 for循環 38
3.2.3 跳出循環 40
3.2.4 循環中的else語句 41
3.3 實戰與演練 42
3.4 本章小結 43
第4章 列表和元組 44
4.1 定義列表 44
4.2 列表的基本操作 44
4.2.1 通過索引操作列表元素 44
4.2.2 分片 46
4.2.3 列表的加法 48
4.2.4 列表的乘法 48
4.2.5 in運算符 48
4.2.6 列表的長度、最大值和最小值 49
4.2.7 列表封包和列表解包 50
4.2.8 修改列表元素 52
4.2.9 刪除列表元素 52
4.2.10 分片賦值 52
4.3 列表方法 53
4.4 元組 56
4.5 for循環與列表 57
4.5.1 使用for循環枚舉列表與元組中的元素 57
4.5.2 使用for-in循環遍歷列表與元組中的元素 58
4.5.3 使用for表達式自動生成列表 59
4.6 實戰與演練 60
4.7 本章小結 62
第5章 字符串 63
5.1 字符串格式化 63
5.1.1 字符串格式化基礎 63
5.1.2 模板字符串 65
5.1.3 字符串的format方法 65
5.1.4 更進一步控制字符串格式化參數 67
5.1.5 字段寬度、精度和千分位分隔符 68
5.1.6 符號、對齊、用0填充和進制轉換 69
5.1.7 f字符串 70
5.2 字符串方法 70
5.2.1 center方法 70
5.2.2 find方法 71
5.2.3 join方法 71
5.2.4 split方法 72
5.2.5 lower方法、upper方法和capwords函數 73
5.2.6 replace方法 74
5.2.7 strip方法 74
5.2.8 translate方法與maketrans方法 75
5.3 實戰與演練 75
5.4 本章小結 76
第6章 字典 77
6.1 為什麽要引入字典 77
6.2 創建和使用字典 78
6.2.1 dict函數 78
6.2.2 字典的基本操作 78
6.2.3 字典的格式化字符串 80
6.2.4 字典迭代 81
6.3 字典方法 82
6.3.1 clear方法 82
6.3.2 copy方法與deepcopy函數 82
6.3.3 fromkeys方法 83
6.3.4 get方法 84
6.3.5 items方法和keys方法 84
6.3.6 pop方法和popitem方法 85
6.3.7 setdefault方法 86
6.3.8 update方法 87
6.3.9 values方法 87
6.4 實戰與演練 88
6.5 本章小結 89
第7章 函數 90
7.1 函數基礎 90
7.1.1 定義函數 90
7.1.2 為函數添加文檔註釋 90
7.1.3 沒有返回值的函數 91
7.2 函數參數 92
7.2.1 改變參數的值 92
7.2.2 命名參數與默認值 97
7.2.3 可變參數 99
7.2.4 將序列作為函數的參數值 100
7.3 作用域 103
7.4 實戰與演練 104
7.5 本章小結 105
第8章 類和對象 106
8.1 對象的魔法 106
8.2 類 106
8.2.1 創建自己的類 106
8.2.2 方法和私有化 108
8.2.3 類代碼塊 110
8.2.4 類的繼承 111
8.2.5 檢測繼承關系 111
8.2.6 多繼承 113
8.2.7 接口 114
8.3 實戰與演練 116
8.4 本章小結 116
第9章 異常 117
9.1 什麽是異常 117
9.2 主動拋出異常 117
9.2.1 raise語句 118
9.2.2 自定義異常類 119
9.3 捕捉異常 120
9.3.1 try…except語句的基本用法 120
9.3.2 捕捉多個異常 121
9.3.3 用同一個代碼塊處理多個異常 123
9.3.4 捕捉對象 124
9.3.5 異常捕捉中的else子句 126
9.3.6 異常捕捉中的finally子句 127
9.4 異常、函數與棧跟蹤 129
9.5 異常的妙用 129
9.6 實戰與演練 131
9.7 本章小結 131
第10章 方法、屬性和迭代器 132
10.1 構造方法 132
10.1.1 構造方法的基礎知識 132
10.1.2 重寫普通方法和構造方法 133
10.1.3 使用super函數 135
10.2 特殊成員方法 136
10.2.1 自定義序列 136
10.2.2 從內建列表、字符串和字典繼承 138
10.3 方法重載 140
10.3.1 Python為什麽在語法上不支持方法重載 141
10.3.2 用魔法方法讓Python支持方法重載 142
10.4 屬性 145
10.4.1 傳統的屬性 145
10.4.2 property函數 147
10.4.3 監控對象中所有的屬性 148
10.5 靜態方法和類方法 150
10.6 迭代器 152
10.7 生成器 153
10.8 裝飾器 154
10.8.1 疊加使用Python裝飾器 154
10.8.2 定義Python裝飾器 154
10.8.3 理解Python函數 155
10.8.4 理解Python裝飾器 157
10.9 實戰與演練 158
10.10 本章小結 159
第二篇 存儲解決方案
第11章 文件和流 163
11.1 打開文件 163
11.2 操作文件的基本方法 164
11.2.1 讀文件和寫文件 165
11.2.2 管道輸出 166
11.2.3 讀行和寫行 167
11.3 使用FileInput對象讀取文件 169
11.4 實戰與演練 170
11.5 本章小結 170
第12章 數據存儲 171
12.1 處理XML格式的數據 171
12.1.1 讀取與搜索XML文件 171
12.1.2 字典轉換為XML字符串 172
12.1.3 XML字符串轉換為字典 174
12.2 處理JSON格式的數據 175
12.2.1 JSON字符串與字典互相轉換 175
12.2.2 將JSON字符串轉換為類實例 177
12.2.3 將類實例轉換為JSON字符串 178
12.2.4 類實例列表與JSON字符串互相轉換 179
12.3 將JSON字符串轉換為XML字符串 180
12.4 SQLite數據庫 180
12.4.1 管理SQLite數據庫 181
12.4.2 用Python操作SQLite數據庫 183
12.5 MySQL數據庫 186
12.6 非關系型數據庫 188
12.6.1 NoSQL簡介 188
12.6.2 MongoDB數據庫 188
12.6.3 pymongo模塊 190
12.7 實戰與演練 191
12.8 本章小結 192
第三篇 網絡與並發
第13章 TCP與UDP編程 195
13.1 套接字 195
13.1.1 建立TCP服務端 195
13.1.2 服務端接收數據的緩沖區 199
13.1.3 服務端的請求隊列 200
13.1.4 時間戳服務端 202
13.1.5 用Socket實現HTTP服務器 203
13.1.6 客戶端Socket 206
13.1.7 UDP時間戳服務端 207
13.1.8 UDP時間戳客戶端 208
13.2 socketserver模塊 209
13.2.1 實現socketserver TCP時間戳服務端 209
13.2.2 實現socketserver TCP時間戳客戶端 210
13.3 實戰與演練 211
13.4 本章小結 212
第14章 網絡高級編程 213
14.1 urllib3模塊 213
14.1.1 發送HTTP GET請求 213
14.1.2 發送HTTP POST請求 214
14.1.3 HTTP請求頭 216
14.1.4 HTTP響應頭 218
14.1.5 上傳文件 219
14.1.6 超時 220
14.2 Twisted框架 222
14.2.1 異步編程模型 222
14.2.2 Reactor(反應堆)模式 224
14.2.3 HelloWorld(Twisted框架) 224
14.2.4 用Twisted實現時間戳客戶端 226
14.2.5 用Twisted實現時間戳服務端 227
14.3 FTP客戶端 228
14.4 實戰與演練 230
14.5 本章小結 230
第15章 線程與協程 231
15.1 線程與進程 231
15.1.1 進程 231
15.1.2 線程 231
15.2 Python與線程 232
15.2.1 使用單線程執行程序 232
15.2.2 使用多線程執行程序 233
15.2.3 為線程函數傳遞參數 234
15.2.4 線程和鎖 235
15.3 高級線程模塊(threading) 236
15.3.1 Thread類與線程函數 236
15.3.2 Thread類與線程對象 237
15.3.3 從Thread類繼承 238
15.4 線程同步 240
15.4.1 線程鎖 240
15.4.2 信號量 242
15.5 協程 243
15.5.1 同步協程 244
15.5.2 異步協程 245
15.6 實戰與演練 245
15.7 本章小結 246
第四篇 Python高級技術
第16章 GUI庫:PyQt6 249
16.1 PyQt6簡介 249
16.2 PyQt6運行環境安裝 250
16.3 編寫第一個PyQt6程序 250
16.4 窗口的基本功能 251
16.4.1 窗口圖標 251
16.4.2 提示框 251
16.4.3 關閉窗口 252
16.4.4 消息盒子 253
16.4.5 窗口居中 254
16.5 佈局 255
16.5.1 絕對佈局 255
16.5.2 盒佈局 256
16.5.3 網格佈局 257
16.6 控件 258
16.6.1 QPushButton控件 259
16.6.2 QLineEdit控件 261
16.6.3 QCheckBox控件 261
16.6.4 QSlider控件 263
16.6.5 QProgressBar控件 264
16.6.6 QPixmap控件 265
16.6.7 QComboBox控件 266
16.6.8 QCalendarWidget控件 267
16.7 菜單 269
16.8 實戰與演練 270
16.9 本章小結 270
第17章 PyQt6游戲項目實戰:俄羅斯方塊 271
17.1 游戲概述 271
17.2 實現游戲的思路 271
17.3 游戲窗口 272
17.4 創建新的方塊 273
17.5 繪制俄羅斯方塊 274
17.6 響應鍵盤動作 275
17.7 移動和旋轉方塊 276
17.8 顯示下一個俄羅斯方塊 278
17.9 本章小結 278
第18章 Python游戲引擎:Pygame基礎知識 279
18.1 Pygame入門 279
18.1.1 搭建Pygame開發環境 279
18.1.2 使用Pygame 279
18.1.3 顯示文本 281
18.1.4 顯示中文 282
18.1.5 繪制圓 282
18.1.6 繪制矩形 283
18.1.7 繪制直線 284
18.1.8 繪制弧形 285
18.2 鍵盤和鼠標事件 286
18.2.1 鍵盤事件 286
18.2.2 鼠標事件 287
18.3 實戰與演練 289
18.4 本章小結 290
第19章 Python游戲引擎:Pygame高級技術 291
19.1 圖像處理 291
19.1.1 裝載位圖 291
19.1.2 裝載星空背景 291
19.1.3 顯示和旋轉地球 292
19.2 Pygame精靈(Sprite) 293
19.2.1 為Sprite準備動畫素材 294
19.2.2 編寫精靈類 294
19.2.3 裝載Sprite動畫資源 295
19.2.4 縮放Sprite 295
19.2.5 繪制幀 296
19.2.6 設置Sprite動畫幀率 296
19.2.7 精靈組 297
19.2.8 實現不同的幀率 297
19.2.9 完整案例:Sprite演示 299
19.3 碰撞檢測 302
19.3.1 矩形碰撞檢測 302
19.3.2 圓形碰撞檢測 302
19.3.3 遮罩碰撞檢測 303
19.3.4 精靈與組之間的碰撞檢測 304
19.3.5 組與組之間的碰撞檢測 304
19.4 給游戲加上音效 305
19.5 實戰與演練 307
19.6 本章小結 308
第20章 Pygame游戲項目實戰:塔防 310
20.1 游戲概述 310
20.2 游戲中需要完成的工作 310
20.3 游戲初始化 310
20.4 展現游戲角色 311
20.5 響應鼠標和鍵盤事件 312
20.6 碰撞檢測 313
20.7 本章小結 313
第21章 網絡爬蟲與Beautiful Soup 314
21.1 網絡爬蟲基礎 314
21.1.1 爬蟲分類 314
21.1.2 編寫第1個網絡爬蟲 315
21.1.3 保存抓取的數據 318
21.1.4 從百度抓取海量比基尼美女圖片 319
21.2 HTML分析庫:Beautiful Soup 323
21.2.1 如何使用Beautiful Soup 323
21.2.2 Tag對象的name和string屬性 324
21.2.3 讀寫標簽屬性 325
21.2.4 用Beautiful Soup分析京東商城首頁的HTML代碼 327
21.2.5 通過回調函數過濾標簽 328
21.3 實戰與演練 328
21.4 本章小結 329
第22章 Python辦公自動化 330
22.1 Python與Excel交互 330
22.1.1 Python為什麽要與Office交互 330
22.1.2 Python與Office交互的各種技術 330
22.1.3 安裝openpyxl 331
22.1.4 創建和保存Workbook 331
22.1.5 讀取Excel文檔 332
22.1.6 獲取和設置單元格中的值 333
22.1.7 插入和刪除行 334
22.1.8 插入和刪除列 335
22.1.9 訪問多個單元格 336
22.1.10 改變行高和列寬 337
22.1.11 設置單元格文字顏色、字體和背景色 338
22.1.12 使用公式 339
22.1.13 向Excel文檔插入圖像 340
22.1.14 格式化數字和日期 340
22.1.15 合並單元格和取消單元格合並 341
22.1.16 Excel與Pandas結合 342
22.2 Python與Word交互 343
22.2.1 讀取Word文檔的段落 343
22.2.2 獲取段落中的樣式文本 344
22.2.3 設置文本的樣式 344
22.2.4 向Word文檔添加文本 344
22.2.5 向Word文檔添加標題 345
22.2.6 添加換頁符 345
22.2.7 在Word文檔中插入圖像 346
22.2.8 將Word文檔轉換為PDF文檔 346
22.3 Python與PowerPoint交互 347
22.3.1 讀取幻燈片中的文本 347
22.3.2 獲取某一頁幻燈片中的文本 348
22.3.3 新建幻燈片 348
22.3.4 為幻燈片添加一個文本框 348
22.3.5 向幻燈片添加圖像 349
22.4 Python與PDF交互 349
22.4.1 讀取PDF文檔的文本 349
22.4.2 創建PDF文檔 350
22.5 實戰與演練 350
22.6 本章小結 351
第23章 Python爬蟲項目實戰:抓取網絡數據和圖片 352
23.1 網絡庫requests 352
23.1.1 requests的HelloWorld 352
23.1.2 HTTP GET請求 353
23.1.3 添加HTTP請求頭 353
23.1.4 抓取二進制數據 354
23.1.5 HTTP POST請求 354
23.1.6 響應數據 355
23.2 項目1:抓取酷狗紅歌榜 356
23.2.1 項目分析 356
23.2.2 項目的完整實現 357
23.3 項目2:抓取金字塔圖片,並保存為Excel文檔 358
23.3.1 項目分析 359
23.3.2 webp轉換為jpg格式 359
23.3.3 項目的完整實現 359
23.4 本章小結 362
第24章 Python Web框架:Django 363
24.1 Django安裝環境搭建 363
24.2 Django基礎知識 363
24.2.1 建立第一個Django工程 363
24.2.2 Django工程結構分析 365
24.2.3 遠程訪問與埠號 365
24.2.4 用PyCharm建立Django工程 366
24.2.5 添加路由 367
24.2.6 處理HTTP請求 368
24.2.7 Response與Cookie 370
24.2.8 讀寫Session 372
24.2.9 用戶登錄 373
24.2.10 靜態文件 375
24.3 Django模板 377
24.3.1 編寫第一個基於Django模板的應用 377
24.3.2 條件控制標簽 378
24.3.3 循環控制標簽 379
24.3.4 過濾器 380
24.4 實戰與演練 382
24.5 本章小結 382
第25章 Python Web項目實戰:基於Django的58同城網站 383
25.1 項目演示 383
25.2 操作MySQL數據庫 384
25.3 賬號 385
25.3.1 用戶註冊 385
25.3.2 用戶登錄 386
25.4 招聘頁面 388
25.5 二手車頁面 390
25.6 本章小結 392
第26章 Python擴展學習 393
26.1 用Python控制鼠標和鍵盤 393
26.1.1 獲取鼠標的位置 393
26.1.2 實時獲取鼠標的位置 393
26.1.3 移動和拖動鼠標 394
26.1.4 模擬單擊和雙擊鼠標 394
26.1.5 模擬按鍵 395
26.1.6 模擬鍵盤輸入 395
26.2 Python與C/C++交互 395
26.2.1 Python通過cffi調用C/C++動態庫 396
26.2.2 Python通過cython調用C/C++動態庫 396
26.3 製作Python安裝程序 397
26.4 實戰與演練 397
26.5 本章小結 398