好好學Python:從零基礎到項目實戰

好好學Python:從零基礎到項目實戰

《 好好學Python:從零基礎到項目實戰》是2021年5月1日清華大學出版社出版的一本圖書,作者:劉宇宙、劉艷。

基本介紹

  • 中文名:好好學Python:從零基礎到項目實戰
  • 作者:劉宇宙、劉艷
  • 出版時間:2021年5月1日
  • 出版社清華大學出版社
  • ISBN:9787302577225 
  • 定價:119 元
內容簡介,目錄,作者簡介,

內容簡介

本書以Python 3.9為基礎,結合豐富動手練習與項目實戰,通俗易懂地介紹了Python編程與實際開發的重要知識點,內容包括:Python環境構建、數據類型、運算符和表達式、數據結構和控制流、函式、序列、多執行緒編程、正則表達式、面向對象編程、檔案操作、網路編程、郵件收發、資料庫操作,並提供Python爬蟲、自然語言處理、區塊鏈開發、圖片處理與檔案處理項目,各章還安排了程式調試、問題解答、牛刀小試、練習題等內容,以幫助讀者學會處理程式異常,解答學習困惑,鞏固知識,提升開發技能。 本書以生活化場景為對象展開教學,邊講解邊示範,很適合從未有過編程經驗的讀者,本書的內容豐富,技術新穎,涉及知識面較廣,對於想轉行Python編程的讀者也很有參考價值,希望本書可以幫助讀者快速登堂入室,成為編程高手。

目錄

第1章 開始Python之旅 1
1.1 Python的起源 1
1.2 Python的套用場合 2
1.3 Python 3.9的新特性 4
1.4 如何學習Python 5
1.5 構建Python開發環境 6
1.5.1 在Windows系統中安裝Python 6
1.5.2 在Linux、UNIX系統和Mac中安裝Python 13
1.5.3 其他版本 13
1.6 從Hello World開始 13
1.7 調試 14
1.8 答疑解惑 16
1.9 課後思考與練習 16
第2章 Python編程基礎 17
2.1 認識程式 17
2.1.1 程式 17
2.1.2 調試 18
2.1.3 語法錯誤—南轅北轍 19
2.1.4 運行錯誤—突然停止 19
2.1.5 語義錯誤—答非所問 19
2.2 數據類型 20
2.2.1 整型 20
2.2.2 浮點型 22
2.2.3 複數 23
2.2.4 數據類型轉換 24
2.2.5 常量 24
2.3 變數和關鍵字 25
2.3.1 變數 25
2.3.2 變數名稱 29
2.3.3 Python關鍵字 30
2.4 語句 30
2.5 表達式 32
2.6 運算符和操作對象 33
2.6.1 什麼是運算符和操作對象 33
2.6.2 算術運算符 33
2.6.3 比較運算符 34
2.6.4 賦值運算符 36
2.6.5 位運算符 37
2.6.6 邏輯運算符 38
2.6.7 成員運算符 39
2.6.8 身份運算符 39
2.6.9 運算符的優先權 40
2.7 字元串操作 42
2.8 注釋 45
2.9 牛刀小試—九九乘法表逆實現 46
2.10 調試 47
2.11 答疑解惑 47
2.12 課後思考與練習 48
第3章 列表和元組 49
3.1 通用序列操作 50
3.1.1 索引 50
3.1.2 分片 52
3.1.3 序列相加 56
3.1.4 乘法 57
3.1.5 成員資格 58
3.1.6 長度、最小值和最大值 59
3.2 列表 59
3.2.1 更新列表 60
3.2.2 嵌套列表 66
3.2.3 列表方法 67
3.3 元組 77
3.3.1 tuple()函式 78
3.3.2 元組的基本操作 78
3.3.3 元組內置函式 80
3.4 列表與元組的區別 81
3.5 牛刀小試——實現楊輝三角 83
3.6 調試 84
3.7 答疑解惑 85
3.8 課後思考與練習 85
第4章 字元串 87
4.1 字元串的簡單操作 87
4.2 字元串格式化 89
4.2.1 經典的字元串格式化符號—百分號(%) 89
4.2.2 元組的字元串格式化 91
4.2.3 format字元串格式化 94
4.2.4 f字元串格式化 95
4.2.5 f-string字元串格式化 96
4.3 字元串方法 97
4.3.1 split()方法 97
4.3.2 strip()方法 98
4.3.3 join()方法 98
4.3.4 find()方法 99
4.3.5 lower()方法 100
4.3.6 upper()方法 101
4.3.7 replace()方法 102
4.3.8 swapcase()方法 103
4.3.9 translate()方法 103
4.3.10 移除前綴和後綴方法 104
4.4 牛刀小試—變形金剛 105
4.5 調試 106
4.6 答疑解惑 107
4.7 課後思考與練習 107
第5章 字典和集合 108
5.1 字典的使用 108
5.2 創建和使用字典 109
5.2.1 dict()函式 110
5.2.2 字典的基本操作 111
5.2.3 字典和列表比較 113
5.3 字典方法 114
5.3.1 get()方法 114
5.3.2 keys()方法 115
5.3.3 values()方法 116
5.3.4 key in dict方法 116
5.3.5 update()方法 117
5.3.6 clear()方法 117
5.3.7 copy()方法 118
5.3.8 fromkeys()方法 119
5.3.9 items()方法 120
5.3.10 setdefault()方法 120
5.4 字典合併與更新運算符 121
5.5 集合 122
5.5.1 創建集合 123
5.5.2 集合方法 124
5.6 牛刀小試——字典合併與排序 125
5.7 調試 126
5.8 答疑解惑 126
5.9 課後思考與練習 127
第6章 條件、循環和其他語句 128
6.1 使用文本編輯器 128
6.2 import的使用 130
6.2.1 import語句 130
6.2.2 使用逗號輸出 133
6.3 別樣的賦值 134
6.3.1 序列解包 134
6.3.2 鏈式賦值 135
6.3.3 增量賦值 136
6.4 語句塊 136
6.5 條件語句 137
6.5.1 布爾變數的作用 137
6.5.2 if語句 138
6.5.3 else子句 139
6.5.4 elif子句 140
6.5.5 嵌套代碼塊 140
6.5.6 更多操作 141
6.5.7 斷言 143
6.6 循環 144
6.6.1 while循環 144
6.6.2 for循環 145
6.6.3 循環遍歷字典元素 147
6.6.4 疊代工具 148
6.6.5 跳出循環 149
6.6.6 循環中的else子句 152
6.7 pass語句 153
6.8 牛刀小試(1)——猜字遊戲編寫 154
6.9 牛刀小試(2)——平方數 155
6.10 Python程式調試 156
6.11 答疑解惑 156
6.12 課後思考與練習 157
第7章 函式 158
7.1 調用函式 158
7.2 定義函式 160
7.3 函式的參數 163
7.3.1 必須參數 163
7.3.2 關鍵字參數 164
7.3.3 默認參數 165
7.3.4 可變參數 168
7.3.5 組合參數 169
7.3.6 僅通過位置指定的參數 170
7.4 執行流程 172
7.5 形參和實參 172
7.6 變數的作用域 173
7.6.1 局部變數 173
7.6.2 全局變數 175
7.7 有返回值和無返回值函式 177
7.8 為什麼要引入函式 178
7.9 返回函式 179
7.10 遞歸函式 181
7.11 匿名函式 184
7.12 偏函式 186
7.13 牛刀小試(1)——經典排序之快速排序實現 187
7.14 牛刀小試(2)——時間裝飾器 189
7.15 調試 190
7.16 答疑解惑 190
7.17 課後思考與練習 191
第8章 面向對象編程 192
8.1 理解面向對象編程 192
8.2 類的定義與使用 193
8.2.1 類的定義 193
8.2.2 類的使用 194
8.3 深入類 195
8.3.1 類的構造方法 195
8.3.2 類的訪問許可權 199
8.4 繼承 204
8.5 多態 207
8.6 封裝 210
8.7 多重繼承 211
8.8 獲取對象信息 214
8.9 類的專有方法 216
8.10 牛刀小試(1)——出行建議 221
8.11 牛刀小試(2)——判斷一棵樹是否為二叉搜尋樹 223
8.12 調試 224
8.13 答疑解惑 225
8.14 課後思考與練習 225
第9章 異常處理 227
9.1 什麼是異常 227
9.2 異常處理 228
9.3 拋出異常 229
9.4 捕捉多個異常 230
9.5 使用一個塊捕捉多個異常 231
9.6 捕捉對象 232
9.7 全捕捉 232
9.8 異常中的else 233
9.9 自定義異常 234
9.10 finally子句 235
9.11 異常和函式 236
9.12 牛刀小試——正常數和異常數 237
9.13 Bug的由來 239
9.14 課後思考與練習 239
第10章 日期和時間 241
10.1 日期和時間 241
10.1.1 時間戳 241
10.1.2 時間格式化符號 242
10.1.3 struct_time元組 243
10.2 time模組 243
10.2.1 time()函式 243
10.2.2 strftime()函式 245
10.2.3 strptime()函式 245
10.2.4 localtime()函式 246
10.2.5 sleep()函式 246
10.2.6 gmtime()函式 247
10.2.7 mktime()函式 247
10.2.8 asctime()函式 248
10.2.9 ctime()函式 248
10.2.10 三種時間格式轉化 249
10.3 datetime模組 249
10.4 日曆模組 254
10.5 牛刀小試——時間大雜燴 255
10.6 調試 260
10.7 課後思考與練習 260
第11章 正則表達式 261
11.1 認識正則表達式 261
11.2 re模組 263
11.2.1 re.match函式 263
11.2.2 re.search方法 264
11.2.3 re.match與re.search的區別 264
11.3 貪婪模式和非貪婪模式 265
11.4 替換 266
11.5 編譯 267
11.6 牛刀小試(1)——匹配比較 267
11.7 牛刀小試(2)——文本解析 268
11.8 課後思考與練習 270
第12章 檔案操作 271
12.1 打開檔案 271
12.1.1 檔案模式 273
12.1.2 快取 273
12.2 基本檔案方法 274
12.2.1 讀和寫 274
12.2.2 讀寫行 277
12.2.3 關閉檔案 278
12.2.4 檔案重命名 279
12.2.5 刪除檔案 280
12.3 對檔案內容進行疊代 280
12.3.1 按位元組處理 280
12.3.2 按行操作 281
12.3.3 使用fileinput實現懶載入式疊代 282
12.3.4 檔案疊代器 282
12.4 StringIO函式 282
12.5 序列化與反序列化 283
12.5.1 一般序列化與反序列化 283
12.5.2 JSON序列化與反序列化 284
12.6 牛刀小試——批量更改檔案名稱 286
12.7 調試 287
12.8 答疑解惑 288
12.9 課後思考與練習 288
第13章 多執行緒編程 290
13.1 執行緒和進程 290
13.1.1 進程 290
13.1.2 執行緒 291
13.1.3 多執行緒與多進程 291
13.2 使用執行緒 292
13.2.1 全局解釋器鎖 292
13.2.2 退出執行緒 293
13.2.3 Python的執行緒模組 293
13.3 _thread模組 293
13.4 threading模組與Thread類 296
13.4.1 threading模組 296
13.4.2 Thread類 296
13.5 執行緒同步 301
13.6 執行緒優先權佇列 303
13.7 執行緒與進程比較 306
13.7.1 執行緒切換 306
13.7.2 計算密集型與IO密集型 307
13.7.3 異步IO 307
13.8 牛刀小試——多執行緒簡單爬蟲 308
13.9 調試 309
13.10 答疑解惑 309
13.11 課後思考與練習 310
第14章 傳送和接收電子郵件 311
14.1 電子郵件介紹 311
14.2 傳送郵件 313
14.2.1 SMTP傳送郵件 313
14.2.2 傳送HTML格式的郵件 316
14.2.3 傳送帶附屬檔案的郵件 317
14.2.4 傳送圖片 318
14.2.5 同時支持HTML和Plain格式 319
14.2.6 加密SMTP 321
14.3 POP3接收郵件 322
14.3.1 POP3下載郵件 322
14.3.2 解析郵件 323
14.4 牛刀小試——郵件傳送通用化 325
14.5 調試 328
14.6 答疑解惑 329
14.7 課後思考與練習 329
第15章 網路編程 330
15.1 初識網路編程 330
15.2 TCP/IP簡介 330
15.3 網路設計模組 331
15.3.1 socket簡介 331
15.3.2 socket模組 332
15.3.3 socket對象(內建)方法 333
15.4 TCP編程 335
15.4.1 客戶端編程 335
15.4.2 伺服器編程 337
15.5 UDP編程 341
15.6 urllib模組 344
15.6.1 GET請求 344
15.6.2 POST請求 345
15.7 牛刀小試——模擬瀏覽器 347
15.8 調試 347
15.9 答疑解惑 348
15.10 課後思考與練習 348
第16章 GUI編程 349
16.1 GUI簡介 349
16.1.1 常用GUI庫簡介 349
16.1.2 安裝tkinter 350
16.2 概念介紹 350
16.2.1 視窗和控制項 350
16.2.2 事件驅動處理 351
16.2.3 布局管理器 351
16.3 tkinter的控制項 351
16.3.1 Button控制項 352
16.3.2 Checkbutton控制項 353
16.3.3 Label控制項 355
16.3.4 Text控制項 356
16.3.5 Menu控制項 357
16.4 tkinter組合控制項 359
16.5 牛刀小試——計算器開發 361
16.6 調試 366
16.7 答疑解惑 367
16.8 課後思考與練習 367
第17章 運算元據庫 368
17.1 資料庫介紹 368
17.2 Python資料庫API 369
17.2.1 全局變數 369
17.2.2 異常 370
17.2.3 連線和游標 370
17.2.4 類型 372
17.3 資料庫操作 372
17.3.1 資料庫連線 372
17.3.2 創建資料庫表 373
17.3.3 資料庫插入 375
17.3.4 資料庫查詢 376
17.3.5 資料庫更新 377
17.3.6 資料庫刪除 378
17.4 事務 379
17.5 調試 380
17.6 答疑解惑 381
17.7 課後思考與練習 381
第18章 網路爬蟲項目 382
18.1 了解爬蟲 382
18.2 爬蟲的原理 383
18.3 爬蟲常用的幾種技巧 383
18.3.1 基本方法 384
18.3.2 使用代理伺服器 384
18.3.3 Cookie處理 384
18.3.4 偽裝成瀏覽器 385
18.3.5 登錄 385
18.4 爬蟲示例——抓取豆瓣電影Top250影評數據 386
18.4.1 確定URL格式 386
18.4.2 頁面抓取 386
18.4.3 提取相關信息 387
18.4.4 寫入檔案 389
18.4.5 完善代碼 389
18.5 項目小結 392
第19章 自然語言分詞與詞頻統計項目 393
19.1 概念介紹 393
19.1.1 SQLAlchemy簡介 393
19.1.2 pyecharts簡介 394
19.1.3 jieba分詞庫簡介 394
19.1.4 BeautifulSoup庫簡介 394
19.2 庫的安裝與使用 394
19.2.1 SQLAlchemy的安裝與使用 394
19.2.2 pyecharts的安裝與使用 396
19.2.3 jieba分詞庫的安裝與使用 396
19.2.4 BeautifulSoup的安裝與使用 397
19.3 分詞與詞頻統計實戰 398
19.3.1 整體結構設計 398
19.3.2 數據結構設計 399
19.3.3 數據的爬取與保存 400
19.3.4 制定關鍵字庫 402
19.3.5 詞頻統計與圖表生成 402
19.4 分詞與詞頻統計完整代碼實現與結果查看 404
19.5 項目小結 413
第20章 區塊鏈項目 414
20.1 區塊鏈簡介 414
20.1.1 區塊鏈的定義 414
20.1.2 區塊鏈的特點 415
20.1.3 區塊鏈套用行業及領域 415
20.2 區塊鏈代碼結構設計 415
20.2.1 環境準備 415
20.2.2 代碼結構設計 415
20.3 區塊鏈具體邏輯實現 418
20.3.1 塊結構 418
20.3.2 加入交易 418
20.3.3 創建新塊 419
20.3.4 工作量證明的理解 420
20.3.5 工作量證明的實現 421
20.4 API接口層開發 422
20.4.1 傳送交易 422
20.4.2 挖礦 422
20.4.3 返回整個區塊鏈 423
20.5 運行區塊鏈 424
20.6 分散式實現 425
20.6.1 註冊節點 426
20.6.2 實現共識算法 426
20.7 完整項目代碼與執行 429
20.8 項目小結 443
第21章 圖片處理項目 444
21.1 圖片處理基本庫簡介 444
21.2 讀取圖片大小 447
21.3 圖片完好性檢測 449
21.4 相同圖片檢測 451
21.5 項目小結 457
第22章 不同格式檔案處理 458
22.1 TXT檔案讀寫 458
22.2 CSV檔案讀寫 462
22.3 XLSX檔案讀寫 465
22.3.1 使用xlrd模組讀取Excel數據 466
22.3.2 使用openpyxl模組寫數據 468
22.4 JSON檔案讀寫 469
22.5 Word檔案讀寫 471
22.6 XML檔案讀寫 475
22.7 讀取CSV檔案數據並插入MySQL資料庫 477
22.8 項目小結 484
附錄A 485

作者簡介

劉宇宙,大數據與人工智慧開發工程師,從業8年,先後供職於上海海鼎、廣州棒谷、深圳Bello智慧型科技有限公司等,擔任高級工程師及效率與運維負責人。先後從事過卡系統研發、雲計算IaaS研發、物聯網研發、網路爬蟲研發和人工智慧研發,對Python有深入研究。出版
暢銷書《Python 3.5從零開始學》(清華大學出版社,2017),長期在國內知名IT技術網站CSDN發表原創博文。

相關詞條

熱門詞條

聯絡我們