看漫畫學(xué)Python:有趣、有料、好玩、好用(全彩)(第3版)
定 價:109 元
- 作者:關(guān)東升
- 出版時間:2025/10/1
- ISBN:9787121512988
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.561-64
- 頁碼:308
- 紙張:
- 版次:01
- 開本:16開
Python是一門既簡單易學(xué)又功能強大的編程語言,被廣泛應(yīng)用于數(shù)據(jù)分析、大數(shù)據(jù)處理、網(wǎng)絡(luò)爬蟲、自動化運維、科學(xué)計算和人工智能等領(lǐng)域。Python的重要性日益凸顯,已被納入國家計算機(jī)等級考試科目,許多中小學(xué)也開設(shè)了Python編程課程。本書秉承有趣、有料、好玩、好用的理念,通過3個漫畫人物的輕松對話、生動形象和夸張動作,將復(fù)雜的Python技術(shù)問題簡單化解。本書共計17章。第1章講解Python的歷史和特點,并進(jìn)行開發(fā)環(huán)境搭建;第2~5章講解Python的基礎(chǔ)語法,包括數(shù)據(jù)類型、運算符和程序流程控制等;第6~7章講解容器類型的數(shù)據(jù)和字符串操作;第8~11章講解函數(shù)、類與對象、異常處理和常用的內(nèi)置模塊;第12~16章講解Python實用庫的應(yīng)用,包括文件讀寫、圖形界面設(shè)計、網(wǎng)絡(luò)通信、數(shù)據(jù)庫訪問和多線程等,其中使用了Python自帶的GUI開發(fā)工具包Tkinter進(jìn)行GUI開發(fā),能有效降低學(xué)習(xí)門檻,提升實踐體驗;第17章講解算法入門知識,包括排序算法、查找算法和遞歸等,幫助讀者培養(yǎng)邏輯思維能力。本書基本在每一章中都安排了“動動手”“課后練習(xí)”和“編程挑戰(zhàn)”環(huán)節(jié),讀者可在這些環(huán)節(jié)找到應(yīng)用實例和同步練習(xí)題。
關(guān)東升一個在IT領(lǐng)域摸爬滾打20多年的老程序員、軟件架構(gòu)師、高級培訓(xùn)講師、IT作家。熟悉Java、Kotlin、Python、iOS、Android、游戲開發(fā)、數(shù)據(jù)庫開發(fā)與設(shè)計、軟件架構(gòu)設(shè)計等多種IT技術(shù)。參與設(shè)計和開發(fā)北京市公交一卡通百億級大型項目,開發(fā)國家農(nóng)產(chǎn)品追溯系統(tǒng)、金融系統(tǒng)、微博等移動客戶端項目。近期為中國移動、中國聯(lián)通、南方航空、中國石油、工商銀行、平安銀行和天津港務(wù)局等企事業(yè)單位授課。著有《看漫畫學(xué)Python》《看漫畫學(xué)Python 2》《趣玩Python》《Java從小白到大!贰禟otlin從小白到大!贰禤ython從小白到大!返40多部計算機(jī)書籍。趙大羽用戶體驗設(shè)計師,UI及交互設(shè)計專家,企業(yè)內(nèi)訓(xùn)講師及咨詢顧問。畢業(yè)于清華大學(xué)美術(shù)學(xué)院,曾為摩托羅拉、上海通用別克、寶潔、西門子等企業(yè)提供設(shè)計工作;為華為、聯(lián)想、惠普、攜程、咪咕傳媒、愛普生等企業(yè)提供用戶體驗咨詢服務(wù)及設(shè)計培訓(xùn);著有書籍《品味移動設(shè)計》《交互設(shè)計的藝術(shù)》。
第1章 油箱加滿!準(zhǔn)備出發(fā)! / 1
1.1 Python的歷史 / 2
1.2 Python的特點 / 3
1.3 安裝Python / 4
1.4 動動手——編寫和運行一個HelloWorld程序 / 5
1.4.1 交互方式 / 6
1.4.2 文件方式 / 7
1.5 課后練習(xí) / 11
1.6 編程挑戰(zhàn) / 11
第2章 編程基礎(chǔ)那點事兒 / 12
2.1 標(biāo)識符 / 13
2.2 關(guān)鍵字 / 14
2.3 變量 / 14
2.4 語句 / 15
2.5 注釋 / 16
2.6 模塊 / 16
2.7 動動手——實現(xiàn)兩個模塊間的代碼元素訪問 / 18
2.8 課后練習(xí) / 19
2.9 編程挑戰(zhàn) / 20
第3章 數(shù)字類型的數(shù)據(jù) / 21
3.1 Python中的數(shù)據(jù)類型 / 22
3.2 整數(shù)類型 / 22
3.3 浮點類型 / 23
3.4 復(fù)數(shù)類型 / 24
3.5 布爾類型 / 24
3.6 數(shù)字類型的相互轉(zhuǎn)換 / 25
3.6.1 隱式類型的轉(zhuǎn)換 / 26
3.6.2 顯式類型的轉(zhuǎn)換 / 27
3.7 課后練習(xí) / 28
3.8 編程挑戰(zhàn) / 29
第4章 運算符 / 30
4.1 算術(shù)運算符 / 31
4.2 比較運算符 / 32
4.3 邏輯運算符 / 34
4.4 位運算符 / 35
4.5 賦值運算符 / 37
4.6 運算符的優(yōu)先級 / 38
4.7 課后練習(xí) / 11
4.8 編程挑戰(zhàn) / 41
第5章 程序流程控制 / 43
5.1 分支語句 / 44
5.1.1 if結(jié)構(gòu) / 44
5.1.2 if-else結(jié)構(gòu) / 45
5.1.3 if-elif-else結(jié)構(gòu) / 47
5.2 循環(huán)語句 / 48
5.2.1 while語句 / 48
5.2.2 for語句 / 51
5.3 跳轉(zhuǎn)語句 / 54
5.3.1 break語句 / 54
5.3.2 continue語句 / 55
5.4 動動手——計算水仙花數(shù) / 56
5.5 課后練習(xí) / 58
5.6 編程挑戰(zhàn) / 58
第6章 容器類型的數(shù)據(jù) / 60
6.1 序列 / 61
6.1.1 序列的索引操作 61
6.1.2 加與乘操作 62
6.1.3 切片操作 63
6.1.4 成員測試 / 65
6.2 列表 / 65
6.2.1 創(chuàng)建列表 / 65
6.2.2 追加元素 / 66
6.2.3 插入元素 / 67
6.2.4 替換元素 / 68
6.2.5 刪除元素 / 68
6.3 元組 / 69
6.3.1 創(chuàng)建元組 / 69
6.3.2 元組拆包 / 70
6.4 集合 / 72
6.4.1 創(chuàng)建集合 / 72
6.4.2 修改集合 / 73
6.5 字典 / 74
6.5.1 創(chuàng)建字典 / 74
6.5.2 修改字典 / 76
6.5.3 訪問字典視圖 / 77
6.6 動動手——遍歷字典 / 78
6.7 課后練習(xí) / 79
6.8 編程挑戰(zhàn) / 80
第7章 字符串 / 82
7.1 字符串的表示方式 / 83
7.1.1 普通字符串 / 83
7.1.2 原始字符串 / 85
7.1.3 長字符串 / 86
7.2 字符串與數(shù)字的相互轉(zhuǎn)換 / 86
7.2.1 將字符串轉(zhuǎn)換為數(shù)字 / 87
7.2.2 將數(shù)字轉(zhuǎn)換為字符串 / 88
7.3 格式化字符串 / 88
7.3.1 使用占位符 / 89
7.3.2 格式化控制符 / 90
7.3.3 使用f-string格式化字符串 / 91
7.4 操作字符串 / 92
7.4.1 字符串查找 / 92
7.4.2 字符串替換 / 93
7.4.3 字符串分割 / 94
7.5 動動手——統(tǒng)計英文文章中單詞出現(xiàn)的頻率 / 95
7.6 課后練習(xí) / 97
7.7 編程挑戰(zhàn) / 97
第8章 函數(shù) / 99
8.1 定義函數(shù) / 100
8.2 調(diào)用函數(shù) / 101
8.2.1 使用位置參數(shù)調(diào)用函數(shù) / 101
8.2.2 使用關(guān)鍵字參數(shù)調(diào)用函數(shù) / 102
8.3 參數(shù)的默認(rèn)值 / 103
8.4 可變參數(shù) / 104
8.4.1 基于元組的可變參數(shù)(*可變參數(shù)) / 104
8.4.2 基于字典的可變參數(shù)(**可變參數(shù)) / 105
8.5 函數(shù)中變量的作用域 / 106
8.6 函數(shù)類型 / 108
8.6.1 理解函數(shù)類型 / 108
8.6.2 過濾函數(shù)filter() / 110
8.6.3 映射函數(shù)map() / 111
8.7 lambda()函數(shù) / 112
8.8 動動手——使用更多的lambda()函數(shù) / 114
8.9 課后練習(xí) / 116
8.10 編程挑戰(zhàn) / 117
第9章 類與對象 / 119
9.1 面向?qū)ο?/ 120
9.2 定義類 / 120
9.3 創(chuàng)建對象 / 121
9.4 類的成員 / 122
9.4.1 實例變量 / 123
9.4.2 構(gòu)造方法 / 124
9.4.3 實例方法 / 125
9.4.4 類變量 / 126
9.4.5 類方法 / 127
9.5 封裝性 / 128
9.5.1 私有變量 / 129
9.5.2 私有方法 / 130
9.5.3 使用屬性 / 131
9.6 繼承性 / 134
9.6.1 Python中的繼承 / 134
9.6.2 多繼承 / 136
9.6.3 重寫方法 / 138
9.7 多態(tài)性 / 140
9.7.1 繼承與多態(tài) / 140
9.7.2 鴨子類型測試與多態(tài) / 141
9.8 課后練習(xí) / 144
9.9 編程挑戰(zhàn) / 144
第10章 異常處理 / 146
10.1 第一個異常——除零異常 / 147
10.2 捕獲異常 / 148
10.2.1 try-except語句 / 149
10.2.2 多個except代碼塊 / 151
10.2.3 多重異常捕獲 / 152
10.2.4 try-except語句嵌套 / 153
10.3 使用finally代碼塊釋放資源 / 154
10.4 自定義異常類 156
10.5 動動手——手動引發(fā)異常 / 157
10.6 課后練習(xí) / 159
10.7 編程挑戰(zhàn) / 159
第11章 常用的內(nèi)置模塊 / 160
11.1 數(shù)學(xué)計算模塊——math模塊 / 161
11.2 日期時間模塊——datetime模塊 / 162
11.2.1 datetime類 / 163
11.2.2 date類 / 164
11.2.3 time類 / 165
11.2.4 計算時間跨度類——timedelta類 / 166
11.2.5 將日期時間對象與字符串相互轉(zhuǎn)換 / 167
11.3 正則表達(dá)式模塊——re模塊 / 168
11.3.1 字符串匹配 / 169
11.3.2 字符串查找 / 170
11.3.3 字符串替換 / 171
11.3.4 字符串分割 / 172
11.4 點撥點撥——如何使用官方文檔查找模塊幫助信息 / 173
11.5 課后練習(xí) / 176
11.6 編程挑戰(zhàn) / 177
第12章 文件讀寫 / 178
12.1 打開文件 / 179
12.2 關(guān)閉文件 / 182
12.2.1 在finally代碼塊中關(guān)閉文件 / 182
12.2.2 在with as代碼塊中關(guān)閉文件 / 184
12.3 讀寫文本文件 / 185
12.4 動動手——復(fù)制文本文件 / 185
12.5 讀寫二進(jìn)制文件 / 187
12.6 動動手——復(fù)制二進(jìn)制文件 / 187
12.7 課后練習(xí) / 189
12.8 編程挑戰(zhàn) / 189
第13章 基于Tkinter的圖形界面設(shè)計 / 191
13.1 圖形界面開發(fā)工具包概述 / 192
13.2 第一個Tkinter程序 193
13.2.1 在窗口中添加控件 / 194
13.2.2 將控件綁定事件處理函數(shù) / 195
13.3 布局管理 / 197
13.3.1 pack / 198
13.3.2 grid / 200
13.3.3 place / 201
13.4 常用控件 / 203
13.4.1 文本輸入框 / 203
13.4.2 文本區(qū) / 204
13.4.3 復(fù)選框 / 205
13.4.4 單選按鈕 / 207
13.4.5 列表 / 209
13.4.6 下拉列表 / 211
13.5 課后練習(xí) / 213
13.6 編程挑戰(zhàn) / 213
第14章 網(wǎng)絡(luò)通信 / 215
14.1 基本的網(wǎng)絡(luò)知識 / 216
14.1.1 TCP/IP / 216
14.1.2 IP地址 / 216
14.1.3 端口 / 217
14.1.4 HTTP/HTTPS / 217
14.2 搭建自己的Web服務(wù)器 / 218
14.3 urllib.request模塊 / 223
14.3.1 發(fā)送GET請求 / 223
14.3.2 發(fā)送POST請求 / 224
14.4 JSON數(shù)據(jù) / 225
14.4.1 JSON文檔的結(jié)構(gòu) / 226
14.4.2 JSON數(shù)據(jù)的解碼 / 226
14.5 動動手——下載圖片 / 228
14.6 動動手——返回所有備忘錄信息 229
14.7 課后練習(xí) / 232
14.8 編程挑戰(zhàn) / 232
第15章 訪問數(shù)據(jù)庫 / 233
15.1 SQLite / 234
15.1.1 SQLite中的數(shù)據(jù)類型 / 234
15.1.2 Python中數(shù)據(jù)類型與SQLite中數(shù)據(jù)類型的映射 / 234
15.1.3 使用GUI管理工具管理SQLite / 235
15.2 數(shù)據(jù)庫編程的基本操作過程 / 238
15.3 sqlite3模塊 / 239
15.3.1 數(shù)據(jù)庫連接對象Connection / 239
15.3.2 游標(biāo)對象Cursor / 240
15.4 動動手——數(shù)據(jù)庫的CRUD操作示例 / 240
15.4.1 示例中的表 / 241
15.4.2 無條件查詢語句 / 242
15.4.3 有條件查詢語句 / 243
15.4.4 插入數(shù)據(jù) / 244
15.4.5 更新數(shù)據(jù) / 246
15.4.6 刪除數(shù)據(jù) / 248
15.5 點撥點撥——防止SQL注入攻擊 / 250
15.6 課后練習(xí) / 252
15.7 編程挑戰(zhàn) / 252
第16章 多線程 / 254
16.1 線程相關(guān)的知識 / 255
16.1.1 進(jìn)程 / 255
16.1.2 線程 / 255
16.1.3 主線程 / 255
16.2 線程模塊——threading模塊 / 256
16.3 創(chuàng)建子線程 / 257
16.3.1 通過自定義函數(shù)實現(xiàn)線程體 / 257
16.3.2 通過自定義線程類實現(xiàn)線程體 / 259
16.4 線程管理 / 260
16.4.1 等待線程執(zhí)行結(jié)束 / 260
16.4.2 線程停止執(zhí)行 / 262
16.5 動動手——下載圖片 / 264
16.6 課后練習(xí) / 267
16.7 編程挑戰(zhàn) / 267
第17章 算法入門 / 268
17.1 算法的概念 / 269
17.1.1 算法的關(guān)鍵特征 / 270
17.1.2 算法的關(guān)鍵指標(biāo) / 270
17.2 排序算法 / 272
17.2.1 冒泡排序 / 272
17.2.2 選擇排序 / 276
17.2.3 插入排序 / 281
17.3 查找算法 / 285
17.3.1 順序查找 / 286
17.3.2 二分查找 / 288
17.4 遞歸:讓函數(shù)自己調(diào)用自己 / 291
17.4.1 動動手——寫一個計算階乘的程序 / 291
17.4.2 動動手——基于遞歸實現(xiàn)二分查找 / 293
17.5 課后練習(xí) / 295
17.6 編程挑戰(zhàn) / 295
附錄A “課后練習(xí)”參考答案 / 296