Python實戰教程(微課版)

孔祥盛

  • 出版商: 人民郵電
  • 出版日期: 2022-02-01
  • 定價: $359
  • 售價: 8.5$305
  • 語言: 簡體中文
  • 頁數: 266
  • ISBN: 7115579636
  • ISBN-13: 9787115579638
  • 下單後立即進貨 (約4週~6週)

  • Python實戰教程(微課版)-preview-1
  • Python實戰教程(微課版)-preview-2
Python實戰教程(微課版)-preview-1

商品描述

本書採用“案例螺旋升級”驅動“知識螺旋升級”的編寫模式,針對同一案例,由淺入深地講解了10種實現方法,鞏固讀者所學知識,幫助讀者在實踐中體會知識的價值。全書共16章,內容涵蓋基本數據類型、自定義函數、控制語句、自定義模塊和導入語句等Python基礎知識,面向對象編程、文件管理、路徑管理、序列化和持久化等Python中級知識,Web開發、數據庫開發等Python高級知識,字符編碼、BOM等拓展知識。

本書內容豐富、講解深入,可作為普通高等學校電腦專業相關課程的教材,也可作為廣大Python開發愛好者的自學參考書。

作者簡介

孔祥盛,副教授,精通Java、JavaScript、PHP、Python等编程语言,熟悉Web开发、爬虫、自动化测试、数据分析与数据挖掘、数据可视化、数据库等技术,擅长将抽象的理论知识具体化、生活化,善于将综合知识融会贯通于项目案例,主编教材《PHP基础与实例教程》 印次20余次,并获河南省普通高等教育“十四五”规划教材立项、河南省优秀教材二等奖,主编教材《MySQL数据库基础与实例教程》印次近20次。

目錄大綱

目錄

第 1 章 Python 概述 13

1.1Python 簡介 13

1.2Python 的特點 14

1.3Python 解釋器(Python Interpreter) 15

1.4安裝 Python 解釋器 15

上機實踐 1:安裝 Python 解釋器和配置 Path 環境變量 15

場景 1:安裝 Python 解釋器(Python Interpreter) 15

場景 2:手工配置 Path 環境變量 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:利用自省功能自學 Python 27

場景 1:查看 Python 會話上定義的所有對象 28

場景 2:查看對象的數據類型(交互模式下) 28

場景 3:查看對象的屬性和方法 28

場景 4:查看對象的幫助信息 29

場景 5:查看 builtins 的相關信息 30

第 2 章 標識符和對象名 33

2.1標識符 33

2.1.1標識符的命名規則 33

2.1.2單下劃線標識符“_”的妙用 33

2.2Python 內存優化機制 33

2.3對象名的管理 33

2.3.1使用賦值語句為對象命名 34

2.3.2使用 del 語句刪除對象名 34

2.4對象和對象名間的關系總結 34

上機實踐 1:認識保留字(也叫關鍵字) 35

場景 1:查看 Python 的保留字 35

場景 2:理解 sys.path 和 import 語句的關系 36

場景 3:修改 sys.path 的值(第 1 種方法) 37

場景 4:修改 sys.path 的值(第 2 種方法) 37

上機實踐 2:理解 Python 的內存優化機制 37

場景 1:通過對象的內存地址理解 Python 的內存優化機制 1 37

場景 2:通過對象的內存地址理解 Python 的內存優化機制 2 38

上機實踐 3:對象名的管理 39

場景 1:理解賦值語句的執行流程 39

場景 2:其他格式的賦值語句 40

場景 3:使用 del 語句刪除對象名 40

第 3 章 初識內置數據類型 42

3.1常用的內置數據類型 42

3.2數字、布爾型數據和 None 42

3.2.1 數字 42

3.2.2布爾型數據(bool) 42

3.2.3None 42

3.3字符串 str 43

3.3.1字符串的特點 43

3.3.2轉義字符 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:認識數字、布爾型數據和 None 45

場景 1:認識整數 int 和浮點數 float 45

場景 2:認識布爾型數據 46

場景 3:None 對象的數據類型是 NoneType 46

上機實踐 2:認識字符串 46

場景 1:認識字符串 str 46

場景 2:瞭解單行註釋和多行註釋的區別 47

場景 3:認識轉義字符 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:集合內的元素不可重復、無先後順序 54

場景 2:空集合對象的創建 54

場景 3:集合內的元素不可變更 54

場景 4:集合的長度可變更 54

上機實踐 6:認識字典 dict 54

場景 1:字典內元素的“鍵”不可重復 54

場景 2:字典內元素的“鍵”不可變更 54

場景 3:空字典對象的創建 54

場景 4:字典是可變更的 55

上機實踐 7:對象的拷貝 55

場景 1:使用賦值語句“=”拷貝對象 55

場景 2:淺拷貝(借助切片實現) 56

場景 3:淺拷貝(借助 copy 模塊的 copy 函數實現) 58

場景 4:深拷貝 58

上機實踐 8:理解“Python 中一切皆對象” 59

第 4 章 運算符和數據類型轉換 61

4.1運算符 61

4.1.1算術運算符 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類型轉換的必要性 62

4.3理解 True 和“真”、False 和“假” 63

4.4精簡代碼的技巧 63

上機實踐 1:運算符 63

場景 1:算術運算符 63

場景 2:比較運算符 64

場景 3:成員運算符 64

場景 4:對象比較運算符 is 65

場景 5:條件運算符 65

場景 6:算術運算符的其它用途 65

上機實踐 2:顯式類型轉換的必要性 66

場景 1:避免“TypeError”異常 66

場景 2:input 內置函數的使用 66

場景 3:實現一個簡易版的整數加法器 67

上機實踐 3:常用的類型轉換函數 67

場景 1:將字符串'10.0'轉換為整數 10 67

場景 2:將字符串、列表、集合、字典轉換為元組 67

場景 3:將字符串、元組、集合、字典轉換為列表 67

場景 4:將字符串、元組、列表、字典轉換為集合 67

場景 5:將元組、列表轉換為字典 67

場景 6:任意對象都可以轉換為布爾型數據 68

場景 7:eval 函數的用法 68

場景 8:Python 表達式和 Python 語句的區別 68

上機實踐 4:邏輯運算符 69

場景 1:邏輯運算符作用於 True 和 False 69

場景 2:邏輯運算符作用於普通對象 69

第 5 章 自定義函數 70

5.1代碼塊 70

5.2自定義函數的語法格式 71

5.3函數的生命周期 71

5.4命名空間(namespace) 71

5.4.1命名空間概述 72

5.4.2內部函數 72

5.4.3命名空間的 LEGB 規則 72

5.6形式參數 parameter 和實際參數 argument 73

5.7return 語句 73

5.8lambda 表達式 74

5.9組包和解包 74

5.10參數是可變更對象時的註意事項 74

上機實踐 1:理解函數的生命周期 74

場景 1:準備工作 74

場景 2:函數的定義 74

場景 3:創建函數對象 74

場景 4:查看函數對象的信息 75

場景 5:調用函數對象 76

場景 6:刪除函數對象 77

上機實踐 2:理解命名空間 77

場景 1:理解內置命名空間與全局命名空間之間的關系 77

場景 2:理解全局命名空間與局部命名空間之間的關系 79

場景 4:理解內部函數以及命名空間的 LEGB 規則 80

場景 5:理解 global 關鍵字 81

場景 6:理解 nonlocal 關鍵字 81

場景 7:函數內對象名的生命周期 82

上機實踐 3:理解形式參數 parameter 和實際參數 argument 82

場景 1:通過位置參數為形參賦值 82

場景 2:通過關鍵字參數為形參賦值 83

場景 3:通過默認值參數為形參賦值 83

上機實踐 4:理解 return 語句 84

場景 1:結束函數的執行 84

場景 2:將函數的執行結果返回給調用者 84

上機實踐 5:使用 lambda 表達式創建匿名函數對象 85

上機實踐 6:理解組包和解包 85

場景 1:使用“*”解包元組或字典 85

場景 2:使用“*”組包 86

場景 3:使用“**”解包字典 86

場景 4:元組變長參數 87

場景 5:字典變長參數 87

場景 6:同時使用元組變長參數和字典變長參數 87

場景 7:調用函數時使用“*”或者“**”解包 88

上機實踐 7:參數是可變更對象時的註意事項 88

場景 1:實參是不可變更對象 88

場景 2:實參是可變更對象 89

場景 3:默認值參數是可變更對象 89

第 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循環語句 92

6.2.1while 循環語句 92

6.2.2for 循環語句 93

6.2.3使用循環語句的建議 93

6.3其他控制語句 93

6.4強行終止程序的執行 94

6.5異常的處理 94

6.5.1常見的內置異常類型 95

6.5.2異常處理程序的完整語法格式 95

6.6控制語句中定義的對象名具有向外穿透性 96

上機實踐 1:if 語句 96

場景 1:準備工作 96

場景 2:不包含 else 子句的 if 語句 97

場景 3:包含 else 子句的 if 語句 97

場景 4:包含 elif 子句的 if 語句 98

上機實踐 2:不包含 else 子句的 while 循環語句 98

場景 1:使用 while 循環語句計算 1 100 的和 98

場景 2:使用 while 循環語句解決生活中的問題 99

上機實踐 3:不包含 else 子句的 for 循環語句 100

場景 1:使用 for 循環語句計算 1 100 的和 100

場景 2:列表推導式 100

場景 3:生成器表達式 101

場景 4:集合推導式 101

場景 5:字典推導式 101

場景 6:使用 for 循環語句解決生活中的問題 102

上機實踐 4:其他控制語句的使用 102

場景 1:認識循環控制語句 break 102

場景 2:使用 break 語句解決生活中的問題 103

場景 3:認識循環控制語句 continue 104

場景 4:認識 pass 語句 104

場景 5:循環語句中的 else 子句 104

上機實踐 5:強行終止程序的執行 105

場景 1:exit()和 quit()的使用 105

場景 2:sys.exit()的使用 105

場景 3:exit()和 sys.exit()的使用區別 106

場景 4:os._exit()的使用 106

場景 5:os._exit()和 sys.exit()的使用區別 106

場景 6:將 exit()替換成 sys.exit() 107

上機實踐 6:異常的處理 107

場景 1:認識 Python 解釋器處理異常的默認行為 107

場景 2:手動拋出異常 107

場景 3:沒有異常處理的程序是不健壯的 107

場景 4:編寫異常處理程序增強程序的健壯性 108

場景 5:異常的處理 1 109

場景 6:異常的處理 2 109

場景 7:捕獲異常並打印異常信息 110

場景 8:使用 next 函數和 StopIteration 異常遍歷迭代器對象 110

第 7 章 自定義模塊和導入語句 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 屬性值間的關系 115

7.4.5模塊的 name 屬性在測試中的作用 115

7.5主程序存放位置的建議 115

7.6 總結 116

7.6.1import 語句總結 116

7.6.2Python 程序與 Python 模塊間的關系總結 117

上機實踐 1:認識自定義模塊 117

場景 1:準備工作 117

場景 2:認識自定義模塊 117

上機實踐 2: init .py 程序的作用 118

場景 1:Python 包也是模塊 118

場景 2:Python 程序的優先級高於命名空間包 119

場景 3:常規包的優先級高於 Python 程序 119

場景 4: init .py 程序的作用(1) 120

場景 5: init .py 程序的作用(2) 121

上機實踐 3:import 語句的第 3 種用法 122

場景 1:準備工作 122

場景 2:import 語句的第 3 種用法 122

場景 3:import ... as ... 的使用 123

場景 4:import 語句第 3 種用法的註意事項 124

上機實踐 4:import 語句的第 4 種和第 5 種用法 124

場景 1:import 語句的第 4 種用法 124

場景 2:import 語句的第 5 種用法 125

上機實踐 5:Python 程序存在主模塊和非主模塊兩種身份 125

場景 1:準備工作 125

場景 2:Python 程序存在主模塊和非主模塊兩種身份 126

場景 3:理解 sys.path 的第 1 個元素的兩種取值 127

上機實踐 6:模塊的 name 屬性在測試中的作用 127

場景 1:準備工作 127

場景 2:在 Python Shell 上調用自定義函數 128

場景 3:在被測程序中調用自定義函數 128

場景 4:將測試代碼寫在另一個程序中(1) 129

場景 5:將測試代碼寫在另一個程序中(2) 129

場景 6:重溫帶 from 的 import 語句 130

上機實踐 7:主程序建議存放在項目根目錄下 130

第 8 章 項目實戰:學生管理系統的實現(列表和字典篇) 133

8.1元組對象 133

8.2集合對象 133

8.3列表對象 133

8.4字典對象 134

上機實踐 1:元組的應用 134

上機實踐 2:集合的應用 134

場景 1:集合與集合之間的運算(原集合不變) 134

場景 2:以元素為單位更新集合 135

場景 3:以集合為單位更新集合 135

上機實踐 3:列表的應用 136

場景 1:列表對象的常用方法 136

場景 2:採用 MVC 分層思想設計學生管理系統 137

場景 3:使用列表實現學生管理系統 137

上機實踐 4:字典的應用 141

場景 1:字典的 dict()構造方法 141

場景 2:字典常用的方法 141

場景 3:使用字典實現學生管理系統 142

第 9 章 項目實戰:字符串的處理與格式化 146

9.1字符串的處理 146

9.2字符串的格式化 147

上機實踐 1:準備工作 147

上機實踐 2:字符串的處理 148

上機實踐 3:字符串的格式化 149

場景 1:%字符串格式化 149

場景 2:str.format()方法 149

場景 3:str.format_map(mapping)方法 150

場景 4:格式化字符串(f-string) 150

上機實踐 4:字符串的處理(綜合) 151

場景 1:統計段落數 151

場景 2:篩選反義詞 151

場景 3:統計詞頻 151

場景 4:繪制詞雲 152

場景 5:數據清洗 153

第 10 章 為什麽面向對象編程 154

10.1從認知現實世界的角度理解面向對象編程 154

10.1.1人類認知現實世界的過程 154

10.1.2電腦管理現實世界的過程 154

10.2從避免代碼冗餘的角度理解面向對象編程 155

10.2.1結構化編程 155

10.2.2面向對象編程 156

10.2.3理解類和對象之間的關系 157

10.3理解需求的重要性 158

10.4知識匯總 158

10.4.1現實世界 VS 電腦世界知識匯總 158

10.4.2結構化編程 VS 面向對象編程知識匯總 158

第 11 章 面向對象編程基礎知識 161

11.1定義類的語法格式 161

11.2類的定義、模板對象和實例化對象間的關系 161

11.2.1類的定義、模板對象和實例化對象間的關系 161

11.2.2函數和方法的關系 162

11.2.3查看模板對象和實例化對象的內部結構 162

11.2.4訪問模板對象和實例化對象的內部結構 162

11.3構造方法的構成 163

11.3.1 new 方法的語法格式 163

11.3.2 init 方法的語法格式 163

11.4對象的屬性和方法 163

11.4.1實例屬性和實例方法 163

11.4.2類方法和靜態方法 163

11.4.3 類屬性 164

11.5方法的鏈式調用 164

11.6 小結 164

上機實踐 1:類的定義、模板對象和實例化對象間的關系 166

場景 1:準備工作 166

場景 2:類的定義用於創建模板對象 167

場景 3:模板對象用於創建實例化對象 167

場景 4:查看模板對象和實例化對象的內部結構 168

場景 5:類的定義不能決定模板對象的內部結構 170

場景 6:模板對象不能決定實例化對象的內部結構 171

場景 7:屬性的命名空間 171

場景 8:函數和方法的關系 173

上機實踐 2:構造方法、實例屬性和實例方法 173

場景 1: init 方法用於定義實例屬性 173

場景 2:def 語句用於定義實例方法 174

場景 3:理解 new 方法的工作流程 176

上機實踐 3:類方法和靜態方法 177

場景 1:使用“@classmethod”裝飾器定義類方法 177

場景 2:使用“@staticmethod”裝飾器定義靜態方法 179

上機實踐 4:類屬性的應用 181

場景 1:類屬性的應用 181

場景 2:重溫“屬性的命名空間” 182

上機實踐 5:方法的鏈式調用 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理解關閉文件 188

12.3文件管理知識匯總 188

12.4使用 pathlib 管理文件路徑 189

上機實踐 1:文件管理和路徑管理基礎知識 189

場景 1:準備工作 189

場景 2:查看 Python Shell 的當前工作目錄 189

場景 3:修改 Python Shell 的當前工作目錄 190

場景 4:查看 Windows 的首選字符編碼 190

上機實踐 2:以“寫”模式打開文本文件 190

場景 1:創建文件和打開文件的二合一操作 190

場景 2:查看文件句柄的狀態信息 191

場景 3:寫文件和 flush 操作 192

場景 4:寫文件和 close 操作 193

場景 5:查看文件句柄的數據類型 194

場景 6:製作一個 Unicode 字符生成器 194

上機實踐 3:以“讀”模式打開文本文件 195

場景 1:通過迭代文件句柄的方法讀文件 195

場景 2:readline 方法只讀取一行 196

場景 3:使用 read 方法讀文件 197

場景 4:readlines 方法以“行”為單位讀取全部內容 197

上機實踐 4:追加模式和排他寫模式 198

場景 1:以追加模式打開文本文件 198

場景 2:以排他寫模式打開文本文件 198

上機實踐 5:關閉文件的正確方法 198

場景 1:錯誤的代碼片段 198

場景 2:不規範的代碼片段 199

場景 3:改進後的代碼仍然不規範 199

場景 4:較為規範的代碼片段 199

場景 5:最為規範的代碼片段 199

場景 6:with 上下文管理的綜合練習 200

上機實踐 6:pathlib 模塊的 Path 類的使用 201

場景 1:認識 pathlib 模塊 201

場景 2:創建 Path 路徑對象和拼接 Path 路徑對象 201

場景 3:Path 路徑對象的屬性和方法 202

場景 4:查看電腦上真實存在的文件路徑 203

場景 5:遍歷路徑 204

場景 6:查看文件(目錄)的基本信息 204

場景 7:創建目錄 205

場景 8:移動文件(或目錄)和重命名文件(或目錄) 205

場景 9:刪除文件和目錄 206

場景 10:創建文件、打開文件、讀寫文件 206

第 13 章 項目實戰:學生管理系統的實現(JSON、CSV 和 pickle 篇) 208

13.1序列化和持久化 208

13.2json 模塊的使用 208

13.2.1JSON 內置的數據類型 209

13.2.2json 模塊的序列化和持久化方法 209

13.2.3內存中的對象和 JSON 文本數據相互轉換 210

13.3csv 模塊的使用 210

13.3.1列表對象 CSV 文本文件 211

13.3.2字典對象 CSV 文本文件 212

13.4pickle 模塊的使用 213

13.5 總結 213

上機實踐 1:json 模塊的使用 213

場景 1:準備工作 213

場景 2:認識 json 模塊 213

場景 3:JSON 字符串反序列化為內存中的對象 214

場景 4:內存中的對象序列化為 JSON 字符串 215

場景 5:內存中的對象持久化到 JSON 文本文件 215

場景 6:JSON 文本文件反持久化為 Python 對象 216

場景 7:使用 JSON 文本文件和列表實現學生管理系統 217

場景 8:使用 JSON 文本文件和字典實現學生管理系統 220

上機實踐 2:csv 模塊的使用 223

場景 1:認識 csv 模塊 223

場景 2:使用 csv.writer 持久化列表對象到 CSV 文本文件 225

場景 3:使用 csv.reader 遍歷 CSV 文本文件 226

場景 4:使用 csv.DictWriter 持久化字典對象到 CSV 文本文件 226

場景 5:使用 csv.DictReader 遍歷 CSV 文本文件 227

場景 6:使用 CSV 文本文件和列表實現學生管理系統 227

場景 7:使用 CSV 文本文件和字典實現學生管理系統 230

上機實踐 3:pickle 模塊的使用 234

場景 1:認識 pickle 模塊 234

場景 2:使用 pickle 實現對象的序列化和反序列化 234

場景 3:使用 pickle 模塊實現對象的持久化和反持久化 235

場景 4:使用 pickle 二進制文件和列表實現學生管理系統 236

場景 5:使用 pickle 二進制文件和字典實現學生管理系統 237

第 14 章 項目實戰:學生管理系統的實現(Web 篇) 238

14.1Web 開發概述 238

14.2Bottle 概述 238

14.3初識 FORM 表單 239

14.3.1表單標簽 239

14.3.2表單控件 239

14.3.3表單按鈕 240

上機實踐 1:初識 Bottle 和認識 GET 請求 241

場景 1:準備工作 241

場景 2:快速上手 Bottle 241

場景 3:認識 GET 請求 243

場景 4:獲取 GET 請求中的請求參數 244

上機實踐 2:認識 POST 請求 244

場景 1:發送 GET 請求的 FORM 表單 245

場景 2:發送 POST 請求的 FORM 表單 246

場景 3:獲取 POST 請求 FORM 表單中的請求參數 247

上機實踐 3:Bottle 內置模板引擎的使用 247

場景 1:初識 SimpleTemplate 模板引擎 247

場景 2:在模板文件中處理 Python 對象 248

場景 3:認識 table 表格標簽 250

上機實踐 4:學生管理系統的實現(Web 篇) 250

場景 1:準備工作 251

場景 2:student_route.py 程序的實現 251

場景 3:index.txt 首頁的實現 253

場景 4:edit.txt 學生編輯頁面的實現 254

場景 5:主程序 main.py 的實現 255

場景 6:測試 255

第 15 章 項目實戰:學生管理系統的實現(數據庫篇) 257

15.1SQLite 概述 257

15.2數據庫和數據庫表 257

15.3SQLite 數據類型 257

15.4創建數據庫表結構 258

15.5表記錄的操作 258

上機實踐 1:使用 sqlite3 模塊操作 SQLite 數據庫 259

場景 1:準備工作 259

場景 2:創建並連接數據庫 259

場景 3:獲取游標對象 260

場景 4:創建數據庫表 260

場景 5:提交事務(commit) 261

場景 6:釋放資源 261

場景 7:向數據庫表添加記錄 261

場景 8:回滾事務(rollback) 262

場景 9:表記錄的檢索(檢索所有記錄) 263

場景 10:表記錄的檢索(帶有 where 語句) 263

場景 11:修改數據庫表的記錄 264

場景 12:刪除數據庫表的記錄 264

場景 13:認識 SQL 語句的“?”占位符 264

上機實踐 2:基於 Web 學生管理系統的實現(數據庫篇) 265

第 16 章 拓展知識 269

16.1認識字符和字符編碼 269

16.1.1十進制數和二進制數 269

16.1.2ASCII 編碼表和 ASCII 字符集 269

16.1.3十六進制數 270

16.1.4字符編碼表 270

16.1.5 字符集 270

16.1.6Unicode 編碼表 271

16.1.7實現 Unicode 編碼表的字符集 271

16.1.8UTF-8 流行的原因 272

16.1.9Python 字符串棄用 UTF-8 的原因 272

16.1.10理解字符編碼和字符解碼 273

上機實踐 1:通過文本文件認識字符和字符編碼 273

上機實踐 2:通過 Python 代碼認識字符和字符編碼 277

16.2使用 IDLE 開發 Python 程序 281

上機實踐 3:使用 IDLE 開發 Python 程序 282

16.3可迭代對象和迭代器對象 284

上機實踐 4:可迭代對象和迭代器對象 284

16.4生成器函數和生成器對象 288

上機實踐 5:生成器函數和生成器對象 289

16.5pip 包管理工具的使用 290

上機實踐 6:pip 包管理工具的使用 291

16.6Python 中的標點符號 293

16.7os 模塊和 pathlib 模塊的對比 295