本書采用“案例螺旋升級”驅(qū)動“知識螺旋升級”的編寫模式,針對同一案例,由淺入深地講解了10種實現(xiàn)方法,鞏固讀者所學(xué)知識,幫助讀者在實踐中體會知識的價值。全書共16章,內(nèi)容涵蓋基本數(shù)據(jù)類型、自定義函數(shù)、控制語句、自定義模塊和導(dǎo)入語句等Python基礎(chǔ)知識,面向?qū)ο缶幊獭⑽募芾、路徑管理、序列化和持久化等Python中級知識,Web開發(fā)、數(shù)據(jù)庫開發(fā)等Python不錯知識,字符編碼、BOM等拓展知識。
本書內(nèi)容豐富、講解深入,可作為普通高等學(xué)校計算機專業(yè)相關(guān)課程的教材,也可作為廣大Python開發(fā)愛好者的自學(xué)參考書。
第 1 章 Python 概述 13
1.1Python 簡介 13
1.2Python 的特點 14
1.3Python 解釋器(Python Interpreter) 15
1.4安裝 Python 解釋器 15
上機實踐 1:安裝 Python 解釋器和配置 Path 環(huán)境變量 15
場景 1:安裝 Python 解釋器(Python Interpreter) 15
場景 2:手工配置 Path 環(huán)境變量 18
上機實踐 2:交互模式下運行 Python 代碼 19
場景 1:通過 cmd 命令窗口啟動 Python Shell 19
場景 2:Python Shell 與 Python 解釋器的交互 20
場景 3:理解交互模式的特點 20
場景 4:退出 Python Shell(兩種方法) 21
上機實踐 3:運行 Python 程序(采用直接方式) 21
場景 1:準備工作 21
場景 2:使用記事本程序編寫 Python 程序 22
場景 3:采用直接方式運行 Python 程序 22
場景 4:修改 Python 解釋器解析 Python 程序的字符編碼 23
場景 5:將文本文件中文本的字符編碼修改為 UTF-8 24
場景 6:Python 解釋器使用 GBK 碼解析 UTF-8 編碼的程序 25
場景 7:Python 解釋器使用 UTF-8 碼解析 GBK 編碼的程序 25
上機實踐 4:運行 Python 程序(采用間接方式) 25
上機實踐 5:利用自省功能自學(xué) Python 27
場景 1:查看 Python 會話上定義的所有對象 28
場景 2:查看對象的數(shù)據(jù)類型(交互模式下) 28
場景 3:查看對象的屬性和方法 28
場景 4:查看對象的幫助信息 29
場景 5:查看 builtins 的相關(guān)信息 30
第 2 章 標識符和對象名 33
2.1標識符 33
2.1.1標識符的命名規(guī)則 33
2.1.2單下劃線標識符“_”的妙用 33
2.2Python 內(nèi)存優(yōu)化機制 33
2.3對象名的管理 33
2.3.1使用賦值語句為對象命名 34
2.3.2使用 del 語句刪除對象名 34
2.4對象和對象名間的關(guān)系總結(jié) 34
上機實踐 1:認識保留字(也叫關(guān)鍵字) 35
場景 1:查看 Python 的保留字 35
場景 2:理解 sys.path 和 import 語句的關(guān)系 36
場景 3:修改 sys.path 的值(第 1 種方法) 37
場景 4:修改 sys.path 的值(第 2 種方法) 37
上機實踐 2:理解 Python 的內(nèi)存優(yōu)化機制 37
場景 1:通過對象的內(nèi)存地址理解 Python 的內(nèi)存優(yōu)化機制 1 37
場景 2:通過對象的內(nèi)存地址理解 Python 的內(nèi)存優(yōu)化機制 2 38
上機實踐 3:對象名的管理 39
場景 1:理解賦值語句的執(zhí)行流程 39
場景 2:其他格式的賦值語句 40
場景 3:使用 del 語句刪除對象名 40
第 3 章 初識內(nèi)置數(shù)據(jù)類型 42
3.1常用的內(nèi)置數(shù)據(jù)類型 42
3.2數(shù)字、布爾型數(shù)據(jù)和 None 42
3.2.1 數(shù)字 42
3.2.2布爾型數(shù)據(jù)(bool) 42
3.2.3None 42
3.3字符串 str 43
3.3.1字符串的特點 43
3.3.2轉(zhuǎn)義字符 43
3.3.3字符串的索引操作 43
3.3.4字符串的切片操作 44
3.3.5格式化字符串 44
3.4元組 tuple 44
3.5列表 list 44
3.6集合 set 44
3.7字典 dict 45
3.8對象的拷貝 45
上機實踐 1:認識數(shù)字、布爾型數(shù)據(jù)和 None 45
場景 1:認識整數(shù) int 和浮點數(shù) float 45
場景 2:認識布爾型數(shù)據(jù) 46
場景 3:None 對象的數(shù)據(jù)類型是 NoneType 46
上機實踐 2:認識字符串 46
場景 1:認識字符串 str 46
場景 2:了解單行注釋和多行注釋的區(qū)別 47
場景 3:認識轉(zhuǎn)義字符 47
場景 4:字符串的索引操作 48
場景 5:字符串的切片操作 48
場景 6:字符串不可變更 51
場景 7:格式化字符串 51
上機實踐 3:認識元組 tuple 51
場景 1:普通元組、空元組和單元素元組 51
場景 2:元組的索引和切片 51
場景 3:元組不可變更 52
上機實踐 4:認識列表 list 52
場景 1:普通列表、空列表 52
場景 2:列表的索引和切片 53
場景 3:列表可變更 53
上機實踐 5:認識集合 set 53
場景 1:集合內(nèi)的元素不可重復(fù)、無先后順序 54
場景 2:空集合對象的創(chuàng)建 54
場景 3:集合內(nèi)的元素不可變更 54
場景 4:集合的長度可變更 54
上機實踐 6:認識字典 dict 54
場景 1:字典內(nèi)元素的“鍵”不可重復(fù) 54
場景 2:字典內(nèi)元素的“鍵”不可變更 54
場景 3:空字典對象的創(chuàng)建 54
場景 4:字典是可變更的 55
上機實踐 7:對象的拷貝 55
場景 1:使用賦值語句“=”拷貝對象 55
場景 2:淺拷貝(借助切片實現(xiàn)) 56
場景 3:淺拷貝(借助 copy 模塊的 copy 函數(shù)實現(xiàn)) 58
場景 4:深拷貝 58
上機實踐 8:理解“Python 中一切皆對象” 59
第 4 章 運算符和數(shù)據(jù)類型轉(zhuǎn)換 61
4.1運算符 61
4.1.1算術(shù)運算符 61
4.1.2比較運算符 61
4.1.3賦值運算符 61
4.1.4邏輯運算符 62
4.1.5成員運算符 62
4.1.6對象比較運算符 is 62
4.1.7條件運算符 62
4.2類型轉(zhuǎn)換的必要性 62
4.3理解 True 和“真”、False 和“假” 63
4.4精簡代碼的技巧 63
上機實踐 1:運算符 63
上機實踐 2:顯式類型轉(zhuǎn)換的必要性 66
上機實踐 3:常用的類型轉(zhuǎn)換函數(shù) 67
上機實踐 4:邏輯運算符 69
第 5 章 自定義函數(shù) 70
5.1代碼塊 70
5.2自定義函數(shù)的語法格式 71
5.3函數(shù)的生命周期 71
5.4命名空間(namespace) 71
5.4.1命名空間概述 72
5.4.2內(nèi)部函數(shù) 72
5.4.3命名空間的 LEGB 規(guī)則 72
5.6形式參數(shù) parameter 和實際參數(shù) argument 73
5.7return 語句 73
5.8lambda 表達式 74
5.9組包和解包 74
5.10參數(shù)是可變更對象時的注意事項 74
上機實踐 1:理解函數(shù)的生命周期 74
上機實踐 2:理解命名空間 77
上機實踐 3:理解形式參數(shù) parameter 和實際參數(shù) argument 82
上機實踐 4:理解 return 語句 84
上機實踐 5:使用 lambda 表達式創(chuàng)建匿名函數(shù)對象 85
上機實踐 6:理解組包和解包 85
上機實踐 7:參數(shù)是可變更對象時的注意事項 88
第 6 章 控制語句 91
6.1if 語句 91
6.1.1不包含 else 子句的 if 語句 91
6.1.2包含 else 子句的 if 語句 91
6.1.3包含 elif 子句的 if 語句 92
6.2循環(huán)語句 92
6.2.1while 循環(huán)語句 92
6.2.2for 循環(huán)語句 93
6.2.3使用循環(huán)語句的建議 93
6.3其他控制語句 93
6.4強行終止程序的執(zhí)行 94
6.5異常的處理 94
6.5.1常見的內(nèi)置異常類型 95
6.5.2異常處理程序的完整語法格式 95
6.6控制語句中定義的對象名具有向外穿透性 96
上機實踐 1:if 語句 96
上機實踐 2:不包含 else 子句的 while 循環(huán)語句 98
上機實踐 3:不包含 else 子句的 for 循環(huán)語句 100
上機實踐 4:其他控制語句的使用 102
上機實踐 5:強行終止程序的執(zhí)行 105
上機實踐 6:異常的處理 107
第 7 章 自定義模塊和導(dǎo)入語句 112
7.1模塊概述 112
7.1.1自定義模塊 112
7.1.2Python 包的必要性 112
7.2sys.path 的第 1 個元素的兩種取值 113
7.3import 語句的 5 種常見用法 114
7.4模塊的主次之分 114
7.4.1模塊的 name 屬性 114
7.4.2 主模塊 114
7.4.3非主模塊 114
7.4.4模塊名和模塊的 name 屬性值間的關(guān)系 115
7.4.5模塊的 name 屬性在測試中的作用 115
7.5主程序存放位置的建議 115
7.6 總結(jié) 116
7.6.1import 語句總結(jié) 116
7.6.2Python 程序與 Python 模塊間的關(guān)系總結(jié) 117
上機實踐 1:認識自定義模塊 117
上機實踐 2: init .py 程序的作用 118
上機實踐 3:import 語句的第 3 種用法 122
上機實踐 4:import 語句的第 4 種和第 5 種用法 124
上機實踐 5:Python 程序存在主模塊和非主模塊兩種身份 125
上機實踐 6:模塊的 name 屬性在測試中的作用 127
上機實踐 7:主程序建議存放在項目根目錄下 130
第 8 章 項目實戰(zhàn):學(xué)生管理系統(tǒng)的實現(xiàn)(列表和字典篇) 133
8.1元組對象 133
8.2集合對象 133
8.3列表對象 133
8.4字典對象 134
上機實踐 1:元組的應(yīng)用 134
上機實踐 2:集合的應(yīng)用 134
上機實踐 3:列表的應(yīng)用 136
上機實踐 4:字典的應(yīng)用 141
第 9 章 項目實戰(zhàn):字符串的處理與格式化 146
9.1字符串的處理 146
9.2字符串的格式化 147
上機實踐 1:準備工作 147
上機實踐 2:字符串的處理 148
上機實踐 3:字符串的格式化 149
上機實踐 4:字符串的處理(綜合) 151
第 10 章 為什么面向?qū)ο缶幊?154
10.1從認知現(xiàn)實世界的角度理解面向?qū)ο缶幊?154
10.1.1人類認知現(xiàn)實世界的過程 154
10.1.2計算機管理現(xiàn)實世界的過程 154
10.2從避免代碼冗余的角度理解面向?qū)ο缶幊?155
10.2.1結(jié)構(gòu)化編程 155
10.2.2面向?qū)ο缶幊?156
10.2.3理解類和對象之間的關(guān)系 157
10.3理解需求的重要性 158
10.4知識匯總 158
10.4.1現(xiàn)實世界 VS 計算機世界知識匯總 158
10.4.2結(jié)構(gòu)化編程 VS 面向?qū)ο缶幊讨R匯總 158
第 11 章 面向?qū)ο缶幊袒A(chǔ)知識 161
11.1定義類的語法格式 161
11.2類的定義、模板對象和實例化對象間的關(guān)系 161
11.2.1類的定義、模板對象和實例化對象間的關(guān)系 161
11.2.2函數(shù)和方法的關(guān)系 162
11.2.3查看模板對象和實例化對象的內(nèi)部結(jié)構(gòu) 162
11.2.4訪問模板對象和實例化對象的內(nèi)部結(jié)構(gòu) 162
11.3構(gòu)造方法的構(gòu)成 163
11.3.1 new 方法的語法格式 163
11.3.2 init 方法的語法格式 163
11.4對象的屬性和方法 163
11.4.1實例屬性和實例方法 163
11.4.2類方法和靜態(tài)方法 163
11.4.3 類屬性 164
11.5方法的鏈式調(diào)用 164
11.6 小結(jié) 164
上機實踐 1:類的定義、模板對象和實例化對象間的關(guān)系 166
上機實踐 2:構(gòu)造方法、實例屬性和實例方法 173
上機實踐 3:類方法和靜態(tài)方法 177
上機實踐 4:類屬性的應(yīng)用 181
上機實踐 5:方法的鏈式調(diào)用 182
第 12 章 文件管理和路徑管理 184
12.1文件、目錄和路徑 184
12.1.1文件管理概述 184
12.1.2文件的分類 184
12.1.3文本文件的分類 184
12.1.4目錄和路徑 184
12.1.5保證路徑和相對路徑 185
12.1.6路徑管理概述 186
12.2文件管理 186
12.2.1理解打開文件 186
12.2.2理解讀文件和寫文件 187
12.2.3理解刷新文件 188
12.2.4理解關(guān)閉文件 188
12.3文件管理知識匯總 188
12.4使用 pathlib 管理文件路徑 189
上機實踐 1:文件管理和路徑管理基礎(chǔ)知識 189
上機實踐 2:以“寫”模式打開文本文件 190
上機實踐 3:以“讀”模式打開文本文件 195
上機實踐 4:追加模式和排他寫模式 198
上機實踐 5:關(guān)閉文件的正確方法 198
上機實踐 6:pathlib 模塊的 Path 類的使用 201
第 13 章 項目實戰(zhàn):學(xué)生管理系統(tǒng)的實現(xiàn)(JSON、CSV 和 pickle 篇) 208
13.1序列化和持久化 208
13.2json 模塊的使用 208
13.2.1JSON 內(nèi)置的數(shù)據(jù)類型 209
13.2.2json 模塊的序列化和持久化方法 209
13.2.3內(nèi)存中的對象和 JSON 文本數(shù)據(jù)相互轉(zhuǎn)換 210
13.3csv 模塊的使用 210
13.3.1列表對象 CSV 文本文件 211
13.3.2字典對象 CSV 文本文件 212
13.4pickle 模塊的使用 213
13.5 總結(jié) 213
上機實踐 1:json 模塊的使用 213
上機實踐 2:csv 模塊的使用 223
上機實踐 3:pickle 模塊的使用 234
第 14 章 項目實戰(zhàn):學(xué)生管理系統(tǒng)的實現(xiàn)(Web 篇) 238
14.1Web 開發(fā)概述 238
14.2Bottle 概述 238
14.3初識 FORM 表單 239
14.3.1表單標簽 239
14.3.2表單控件 239
14.3.3表單按鈕 240
上機實踐 1:初識 Bottle 和認識 GET 請求 241
上機實踐 2:認識 POST 請求 244
上機實踐 3:Bottle 內(nèi)置模板引擎的使用 247
上機實踐 4:學(xué)生管理系統(tǒng)的實現(xiàn)(Web 篇) 250
第 15 章 項目實戰(zhàn):學(xué)生管理系統(tǒng)的實現(xiàn)(數(shù)據(jù)庫篇) 257
15.1SQLite 概述 257
15.2數(shù)據(jù)庫和數(shù)據(jù)庫表 257
15.3SQLite 數(shù)據(jù)類型 257
15.4創(chuàng)建數(shù)據(jù)庫表結(jié)構(gòu) 258
15.5表記錄的操作 258
上機實踐 1:使用 sqlite3 模塊操作 SQLite 數(shù)據(jù)庫 259
上機實踐 2:基于 Web 學(xué)生管理系統(tǒng)的實現(xiàn)(數(shù)據(jù)庫篇) 265
第 16 章 拓展知識 269
16.1認識字符和字符編碼 269
16.1.1十進制數(shù)和二進制數(shù) 269
16.1.2ASCII 編碼表和 ASCII 字符集 269
16.1.3十六進制數(shù) 270
16.1.4字符編碼表 270
16.1.5 字符集 270
16.1.6Unicode 編碼表 271
16.1.7實現(xiàn) Unicode 編碼表的字符集 271
16.1.8UTF-8 流行的原因 272
16.1.9Python 字符串棄用 UTF-8 的原因 272
16.1.10理解字符編碼和字符解碼 273
16.2使用 IDLE 開發(fā) Python 程序 281
16.3可迭代對象和迭代器對象 284
16.4生成器函數(shù)和生成器對象 288
16.5pip 包管理工具的使用 290
16.6Python 中的標點符號 293
16.7os 模塊和 pathlib 模塊的對比 295