Python編程——從計算思維到編程實踐
陳洪濤
- 出版商: 電子工業
- 出版日期: 2022-12-01
- 定價: $354
- 售價: 8.5 折 $301
- 語言: 簡體中文
- 頁數: 300
- ISBN: 7121439670
- ISBN-13: 9787121439674
下單後立即進貨 (約4週~6週)
相關主題
商品描述
對於怎樣才算是掌握了一門程序設計語言這一命題而言,專業程序員和普通的程序愛好者的視角有很大的差異,主要的不同點是專業程序員必須要全面理解程序設計、運行背後的機理,因為理解上的偏差會導致程序設計或運行出現各種問題。本書從程序員的視角出發,講述了Python簡介、如何學習編程、Python程序的構成、程序流程的控制、函數、模塊和包、數據類型和操作、函數式編程、文件和文件系統操作、異常處理、面向對象編程、元編程、面向對象設計的原則、正則表達式、調試和測試、異步程序等。本書為抽象的知識點提供了豐富的代碼實例,還附帶了完善的微課視頻,採用線上線下結合的方式,讓讀者學會一門真正有用、能用的程序設計語言。 本書既可作為高等院校電腦類、管理類、統計類等專業的Python語言課程的教材,也可以供Python語言自學者或培訓機構使用。
目錄大綱
第1章 Python簡介 1
1.1 Python的由來 1
1.2 Python的特點 1
1.3 Python解釋器 2
1.4 Python程序的集成開發環境 3
1.4.1 Anaconda安裝 3
1.4.2 Anaconda Navigator 5
1.4.3 Spyder的使用 6
1.4.4 Jupyter Notebook的使用 7
1.5 在命令行中使用Conda 9
1.5.1 將安裝包的源設置為國內的鏡像站 9
1.5.2 更新Conda的版本 10
1.5.3 和環境相關的操作方法 10
1.5.4 用Conda管理包 12
1.5.5 進一步瞭解Conda 13
1.6 本章習題 13
第2章 如何學習編程 14
2.1 編程的困難來自哪裡 14
2.2 某種語言是否優於另一種語言 16
2.3 計算思維在編程中起著重要的作用 18
2.4 如何描述電腦上運行的算法 20
2.5 本章習題 22
第3章 Python程序的構成 23
3.1 Python程序的構成要素 23
3.2 Python的標識符和名稱綁定 27
3.2.1 標識符 27
3.2.2 變量類型和字面量 28
3.2.3 名稱綁定 30
3.3 Python程序的運算符和表達式 31
3.3.1 賦值運算符和表達式 31
3.3.2 算術運算符和表達式 32
3.3.3 比較運算符和關系表達式 33
3.3.4 邏輯運算符和表達式 34
3.3.5 成員運算符和表達式 36
3.3.6 位運算符和表達式 37
3.3.7 對象標識運算符和表達式 38
3.4 運算符優先級 38
3.5 輸出格式的控制 39
3.6 一些有用的方法 41
3.7 本章習題 41
第4章 程序流程的控制 43
4.1 程序流程的三種基本結構 43
4.2 選擇語句 44
4.2.1 單分支 44
4.2.2 雙分支 45
4.2.3 多分支 45
4.2.4 選擇語句嵌套 46
4.2.5 復合結構的語句縮進 47
4.3 循環語句 48
4.3.1 如何編寫循環程序 48
4.3.2 循環的中斷 51
4.4 空語句 52
4.5 本章習題 52
第5章 函數 54
5.1 函數的定義和調用 54
5.2 函數的參數傳遞 56
5.2.1 通過內存變化瞭解參數傳遞 56
5.2.2 參數傳遞中的若乾情形 59
5.3 遞歸函數 62
5.4 變量的作用範圍 65
5.5 匿名函數 67
5.6 函數標註和變量標註 68
5.7 文檔字符串 69
5.8 內置函數 70
5.9 本章習題 71
第6章 模塊和包 73
6.1 模塊和包的作用 73
6.2 導入和使用標準模塊 73
6.2.1 Python如何找到標準模塊文件 74
6.2.2 模塊的加載 75
6.3 名稱空間和名稱作用域 76
6.4 自定義模塊 78
6.5 包 79
6.6 本章習題 81
第7章 數據類型和操作 83
7.1 Python的數據類型 83
7.2 容器類型對象的創建 84
7.2.1 序列類型的創建 84
7.2.2 無序類型的創建 88
7.3 對序列類型對象的操作 89
7.3.1 序列類型對象元素的引用 89
7.3.2 序列類型對象的切片 90
7.3.3 適用序列的常見運算符 93
7.3.4 字符串的編碼和解碼 93
7.3.5 字符串和數值的轉換 94
7.3.6 與序列類型對象相關的函數 95
7.3.7 序列類型對象的循環遍歷 98
7.4 無序類型容器對象的操作 99
7.4.1 與無序類型容器相關的函數 99
7.4.2 無序類型對象的循環遍歷 102
7.5 淺拷貝和深拷貝 102
7.6 可迭代和迭代器 104
7.6.1 什麽是可迭代和迭代器 104
7.6.2 推導式 106
7.6.3 生成器表達式 107
7.6.4 生成器 108
7.7 拆包操作符 109
7.8 迭代對象使得代碼更簡潔 110
7.9 本章習題 110
第8章 函數式編程 113
8.1 函數式編程的含義 113
8.2 純函數 114
8.2.1 純函數的反例 114
8.2.2 純函數的正例 114
8.3 高階函數 115
8.4 閉包 116
8.4.1 閉包的含義 116
8.4.2 閉包的應用 117
8.4.3 閉包探究 118
8.5 尾遞歸 118
8.6 Python內置的高階函數 120
8.7 本章習題 122
第9章 文件和文件系統操作 123
9.1 文件和文件系統 123
9.1.1 不同操作系統的一些差異 123
9.1.2 絕對路徑和相對路徑 124
9.2 文件操作 125
9.2.1 打開文件 125
9.2.2 關閉文件 127
9.2.3 文件操作的常用函數 128
9.2.4 文本文件訪問 128
9.2.5 二進制文件訪問 133
9.3 目錄操作 139
9.4 本章習題 141
第10章 異常處理 142
10.1 程序錯誤 142
10.2 異常捕獲 143
10.3 異常的層次關系 146
10.4 拋出異常和異常的調用棧追溯 147
10.4.1 拋出異常 147
10.4.2 異常的調用棧追溯 148
10.5 用戶自定義異常類 149
10.6 本章習題 151
第11章 面向對象編程 152
11.1 面向對象的相關概念 152
11.2 類的定義示例 155
11.3 實例生成和成員訪問的代碼示例 157
11.4 類和對象在內存中的存在 158
11.5 類實例的生成 159
11.6 類實例的銷毀 162
11.7 專用方法 163
11.8 屬性和方法的可訪問性 165
11.9 類方法和靜態方法 167
11.10 其他常用裝飾器描述符 171
11.11 運算符重載 172
11.12 繼承 173
11.12.1 繼承實現擴展和多態 173
11.12.2 多繼承 175
11.13 抽象類 176
11.13.1 通過繼承實現抽象類 176
11.13.2 通過註冊實現抽象類 177
11.13.3 內置抽象基類 179
11.14 如何實現裝飾器 179
11.14.1 實現用戶自定義的裝飾器 179
11.14.2 實現日誌輸出的裝飾器 181
11.15 本章習題 184
第12章 元編程 186
12.1 什麽是元類 186
12.1.1 type是內置函數還是內置類 186
12.1.2 元類和類的關系 187
12.2 用元類創建類 189
12.3 元編程示例 193
12.4 本章習題 195
第13章 面向對象設計的原則 197
13.1 面向對象設計的原則簡介 197
13.2 設計原則的應用 198
13.2.1 起步 198
13.2.2 基於單一職責的第一次改進 199
13.2.3 如何做到擴充時不需要修改 200
13.2.4 什麽是Liskov替換 202
13.2.5 為不同的用戶提供剛好夠用的接口 203
13.3 Tkinter的簡單介紹 207
13.3.1 圖形用戶界面的基本元素 207
13.3.2 簡單的窗口程序 207
13.3.3 用類重構代碼 210
13.4 面向對象的設計原則實例 211
13.4.1 構建概念到實現的層次關系 212
13.4.2 構建自定義的Canvas類 214
13.4.3 用戶界面 217
13.5 本章習題 217
第14章 正則表達式 218
14.1 什麽是正則表達式 218
14.2 正則表達式的主要用途 218
14.2.1 在字符串中查找子串 219
14.2.2 在文本中查找所有字符串 220
14.2.3 分隔字符串 220
14.2.4 替換一部分字符串 221
14.3 把正則表達式轉成模式對象 221
14.4 正則表達式的語法規則 221
14.4.1 元字符 221
14.4.2 轉義字符 222
14.5 正則表達式實例 223
14.6 可選標記參數的設置 226
14.7 分組擴展 228
14.8 本章習題 230
第15章 調試和測試 231
15.1 調試和除錯 231
15.2 測試 232
15.2.1 doctest單元測試模塊的使用方法 233
15.2.2 unittest單元測試模塊的使用方法 236
15.3 本章習題 243
第16章 異步程序 244
16.1 進程和線程 244
16.2 異步程序和同步程序 246
16.3 並行與並發 246
16.4 多線程 247
16.4.1 主線程 247
16.4.2 創建和運行線程 248
16.4.3 守護線程 250
16.4.4 線程池 254
16.4.5 使用鎖同步 258
16.4.6 可重入鎖 261
16.4.7 生產者和消費者 262
16.4.8 其他同步對象 267
16.5 多進程 267
16.5.1 創建和運行多進程 267
16.5.2 進程間數據共享 269
16.5.3 進程間通信 272
16.5.4 進程同步 275
16.5.5 進程池 276
16.6 異步I/O 278
16.6.1 異步程序的調度方式 278
16.6.2 協程 279
16.6.3 可等待對象 282
16.6.4 讓事件循環調度多個協程 282
16.6.5 多協程實現有限狀態機 284
16.6.6 多協程共享數據 287
16.6.7 異步HTTP 289
16.7 本章習題 292