程式設計導論:Python計算與套用開發實踐(原書第2版)

程式設計導論:Python計算與套用開發實踐(原書第2版)

《程式設計導論:Python計算與套用開發實踐(原書第2版)》是2018年機械工業出版社出版的圖書,作者是[美] 盧博米爾·佩爾科維奇(Ljubomir Perkovic)。

基本介紹

  • 中文名:程式設計導論:Python計算與套用開發實踐(原書第2版)
  • 作者:[美] 盧博米爾·佩爾科維奇(Ljubomir Perkovic)
  • 出版時間:2018年11月
  • 出版社機械工業出版社
  • ISBN:9787111611608
  • 定價:99 元
  • 開本:16 開
內容簡介,圖書目錄,

內容簡介

本書不僅僅是傳統的程式設計導論性教材,而且囊括了包羅萬象的計算機科學。書中採用Python作為學生的第一門程式設計語言,提出“正確的時刻+正確的工具”的教學方法,尤為重視應用程式的開發訓練和計算思維的培養,易於教學和實踐。書中首先講解命令式編程,但也很早便引入了對象的概念;在學生具備足夠的基礎知識也更有學習動力之後,書中開始講解自定義類、面向對象編程等更多高級技巧。書中涵蓋了問題求解的核心技術和各類經典算法,這一版還增加了案例章節,所涉及的廣度也有所拓展。

圖書目錄

出版者的話
譯者序
前言
第1章 計算機科學導論 1
1.1 計算機科學 1
1.1.1 計算機專業人員的工作 1
1.1.2 模型、算法和程式 2
1.1.3 必備的工具 3
1.1.4 什麼是計算機科學 3
1.2 計算機系統 3
1.2.1 計算機硬體 3
1.2.2 作業系統 4
1.2.3 網路和網路協定 5
1.2.4 程式開發語言 5
1.2.5 軟體庫 6
1.3 Python程式設計語言 6
1.3.1 Python簡史 6
1.3.2 構建Python開發環境 7
1.4 計算思維 7
1.4.1 一個示例問題 8
1.4.2 抽象和建模 8
1.4.3 算法 9
1.4.4 數據類型 9
1.4.5 賦值語句和執行控制結構 10
1.4.6 本章小結 11
第2章 Python數據類型 12
2.1 表達式、變數和賦值語句 12
2.1.1 代數表達式和函式 12
2.1.2 布爾表達式和運算符 14
2.1.3 變數和賦值語句 16
2.1.4 變數名稱 18
2.2 字元串 18
2.2.2 索引運算符 21
2.3 列表和元組 22
2.3.1 列表運算符 22
2.3.2 列表是可變類型,字元串是不可變類型 24
2.3.3 元組 24
2.3.4 元組和列表的方法 26
2.4 對象和類 28
2.4.1 對象類型 28
2.4.2 數值類型的有效值 29
2.4.3 數值類型的運算符 30
2.4.4 創建對象 32
2.4.5 隱式類型轉換 32
2.4.6 顯式類型轉換 33
2.4.7 類方法和面向對象的程式設計 34
2.5 Python標準庫 35
2.5.1 math模組 35
2.5.2 fractions模組 36
2.6 電子教程案例研究:海龜圖形 37
2.7 本章小結 37
2.8 練習題答案 37
2.9 習題 39
第3章 命令式編程 43
3.1 Python程式 43
3.1.1 我們的第一個Python程式 43
3.1.2 Python模組 45
3.1.3 內置函式print() 45
3.1.4 使用input()函式實現互動式輸入 46
3.1.5 eval()函式 47
3.2 執行控制結構 47
3.2.1 單分支結構 48
3.2.2 雙分支結構 51
3.2.3 循環結構 52
3.2.4 嵌套的控制流結構 55
3.2.5 range()函式 55
3.3.1 我們自定義的第一個函式 57
3.3.2 函式輸入參數 58
3.3.3 print()與return的比較 59
3.3.4 函式定義實際上是“賦值”語句 60
3.3.5 注釋 61
3.3.6 文檔字元串 61
3.4 Python變數和賦值語句 63
3.4.1 可變類型和不可變類型 63
3.4.2 賦值語句和可變性 65
3.4.3 交換 66
3.5 參數傳遞 67
3.5.1 不可變類型參數傳遞 67
3.5.2 可變類型參數傳遞 69
3.6 電子教程案例研究:自動化海龜圖形 70
3.7 本章小結 70
3.8 練習題答案 70
3.9 習題 73
3.10 思考題 74
第4章 文本數據、檔案和異常 77
4.1 深入研究字元串 77
4.1.1 字元串表示 77
4.1.2 深入研究索引運算符 79
4.1.3 字元串方法 80
4.2 格式化輸出 83
4.2.1 函式print() 83
4.2.2 字元串方法format() 84
4.2.3 按列對齊排列數據 86
4.2.4 獲取與格式化日期和時間 89
4.3 檔案 91
4.3.1 檔案系統 91
4.3.2 打開和關閉檔案 92
4.3.3 讀取文本檔案的模式 96
4.3.4 寫入文本檔案 98
4.4 錯誤和異常 99
4.4.1 語法錯誤 100
4.4.2 內置異常 100
4.5 電子教程案例研究:圖像檔案 102
4.6 本章小結 102
4.7 練習題答案 103
4.8 習題 104
4.9 思考題 106
第5章 執行控制結構 108
5.1 選擇控制和if語句 108
5.1.1 三路以及多路分支 108
5.1.2 條件的排列順序 110
5.2 for循環和疊代模式 111
5.2.1 循環模式:疊代循環 111
5.2.2 循環模式:計數器循環 112
5.2.3 循環模式:累加器循環 114
5.2.4 其他類型的累加 115
5.2.5 循環模式:嵌套循環 117
5.3 深入研究列表:二維列表 119
5.3.1 二維列表 119
5.3.2 二維列表和嵌套循環模式 120
5.4 while循環 122
5.5 更多循環模式 124
5.5.1 循環模式:序列循環 124
5.5.2 循環模式:無限循環 125
5.5.3 循環模式:循環和折半 126
5.6 其他疊代控制語句 127
5.6.1 break語句 127
5.6.2 continue語句 128
5.6.3 pass語句 129
5.7 電子教程案例研究:圖像處理 129
5.8 本章小結 130
5.9 練習題答案 130
5.10 習題 133
5.11 思考題 134
第6章 容器和隨機性 140
6.1 字典 140
6.1.1 用戶自定義索引作為字典的動機 140
6.1.2 字典類屬性 141
6.1.3 字典運算符 143
6.1.4 字典方法 144
6.1.5 字典作為多路分支if語句的替代方法 146
6.1.6 字典作為計數器集合 147
6.1.7 元組對象可以作為字典的鍵 149
6.2 集合 150
6.2.1 使用set構造函式移除重複項 151
6.2.2 set運算符 152
6.2.3 set方法 153
6.3 字元編碼和字元串 154
6.3.1 字元編碼 154
6.3.2 ASCII 154
6.3.3 Unicode 156
6.3.4 Unicode字元的UTF-8編碼 158
6.4 random模組 158
6.4.1 選擇一個隨機整數 159
6.4.2 選擇一個隨機“實數” 160
6.4.3 隨機混排、挑選和抽樣 161
6.5 電子教程案例研究:機會遊戲 161
6.6 本章小結 162
6.7 練習題答案 162
6.8 習題 165
6.9 思考題 166
第7章 名稱空間 171
7.1 函式封裝 171
7.1.1 代碼重用 172
7.1.2 模組化 172
7.1.3 封裝 172
7.1.4 局部變數 172
7.1.5 與函式調用相關的名稱空間 173
7.1.6 名稱空間與程式棧 174
7.2 全局名稱空間和局部名稱空間 177
7.2.1 全局變數 178
7.2.2 局部作用範圍的變數 178
7.2.3 全局作用範圍的變數 179
7.2.4 在函式中改變全局變數 180
7.3 異常控制流 181
7.3.1 異常和異常控制流 182
7.3.2 捕獲和處理異常 183
7.3.3 默認異常處理程式 184
7.3.4 捕獲給定類型的異常 184
7.3.5 多重異常處理程式 185
7.3.6 控制異常流 186
7.4 模組作為名稱空間 189
7.4.1 模組屬性 189
7.4.2 導入模組時發生了什麼 190
7.4.3 模組搜尋路徑 190
7.4.4 頂層模組 192
7.4.5 導入模組屬性的不同方法 193
7.5 類作為名稱空間 195
7.5.1 一個類是一個名稱空間 195
7.5.2 類方法是在類名稱空間中定義的函式 196
7.6 電子教程案例研究:使用調試器進行調試 197
7.7 本章小結 197
7.8 練習題答案 197
7.9 習題 199
7.10 思考題 200
第8章 面向對象的程式設計 202
8.1 定義新的Python類 202
8.1.1 類Point的方法 202
8.1.2 類和名稱空間 203
8.1.3 每個對象都有一個關聯的名稱空間 204
8.1.4 類Point的實現 204
8.1.5 實例變數 206
8.1.6 實例繼承類屬性 206
8.1.7 類定義的一般格式 207
8.1.8 編寫類的文檔 208
8.1.9 類Animal 208
8.2 用戶自定義類示例 210
8.2.1 構造函式重載 210
8.2.2 默認構造函式 211
8.2.3 撲克牌類 212
8.3 設計新的容器類 213
8.3.1 設計一個表示一副撲克牌的類 213
8.3.2 實現Deck類 214
8.3.3 容器類Queue 215
8.3.4 實現Queue類 216
8.4 運算符重載 217
8.4.1 運算符是類方法 218
8.4.2 使Point類對用戶友好 220
8.4.3 構造函式和repr()運算符之間的約定 221
8.4.4 使Queue類對用戶友好 223
8.5 繼承 225
8.5.1 繼承類的屬性 225
8.5.2 類定義的一般格式 227
8.5.3 重寫父類方法 227
8.5.4 擴展父類方法 229
8.5.5 通過繼承list實現一個Queue類 231
8.6 用戶自定義異常 232
8.6.1 拋出一個異常 232
8.6.2 用戶自定義異常類 233
8.6.3 改進類Queue的封裝 234
8.7 電子教程案例研究:索引和疊代器 234
8.8 本章小結 235
8.9 練習題答案 235
8.10 習題 237
8.11 思考題 239
第9章 圖形用戶界面 246
9.1 tkinter圖形用戶界面開發基本知識 246
9.1.1 組件Tk:GUI視窗 246
9.1.2 組件Label:顯示文本 247
9.1.3 顯示圖像 248
9.1.4 布局組件 249
9.1.5 將組件布局為表格 251
9.2 基於事件的tkinter組件 253
9.2.1 Button組件及事件處理程式 253
9.2.2 事件、事件處理程式和mainloop() 255
9.2.3 Entry組件 256
9.2.4 Text組件和綁定事件 258
9.2.5 事件模式和tkinter類Event 259
9.3 設計圖形用戶界面 261
9.3.1 組件Canvas 261
9.3.2 作為組織容器的組件Frame 264
9.4 面向對象的圖形用戶界面 265
9.4.1 GUI面向對象程式設計基本知識 266
9.4.2 把共享組件賦值給實例變數 268
9.4.3 把共享數據賦值給實例變數 269
9.5 電子教程案例研究:開發一個計算器 271
9.6 本章小結 271
9.7 練習題答案 271
9.8 習題 275
9.9 思考題 275
第10章 遞歸 278
10.1 遞歸簡介 278
10.1.1 調用自身的函式 278
10.1.2 停止條件 279
10.1.3 遞歸函式的特性 280
10.1.4 遞歸思想 281
10.1.5 遞歸函式調用和程式棧 282
10.2 遞歸示例 284
10.2.1 遞歸數列模式 284
10.2.2 分形圖形 286
10.2.3 病毒掃描 289
10.2.4 線性遞歸 292
10.3 運行時間分析 294
10.3.1 指數函式 294
10.3.2 運算次數 295
10.3.3 斐波那契數列 296
10.3.4 運行時間的實驗分析 298
10.4 查找 300
10.4.1 線性查找 300
10.4.2 二分查找 301
10.4.3 線性查找和二分查找比較 303
10.4.4 唯一性測試 304
10.4.5 選擇第k個最大(或最小)項 305
10.4.6 計算出現頻率最多的項 305
10.5 電子教程案例研究:漢諾塔 306
10.6 本章小結 306
10.7 練習題答案 306
10.8 習題 308
10.9 思考題 309
第11章 Web和搜尋 315
11.1 全球資訊網 315
11.1.1 Web伺服器和Web客戶端 315
11.1.2 WWW的“管道” 316
11.1.3 命名方案:統一資源定位器 316
11.1.4 協定:超文本傳輸協定 317
11.1.6 HTML元素 318
11.1.7 HTML文檔的樹結構 320
11.1.8 錨點HTML元素和絕對連結 320
11.1.9 相對連結 321
11.2 Python WWW API 321
11.2.1 模組urllib.request 322
11.2.2 模組html.parser 324
11.2.3 重載HTMLParser處理程式 325
11.2.4 模組urllib.parse 327
11.2.5 收集HTTP超連結的解析器 327
11.3 字元串模式匹配 329
11.3.1 正則表達式 329
11.3.2 Python標準庫模組re 332
11.4 電子教程案例研究:Web爬蟲 333
11.5 本章小結 333
11.6 練習題答案 334
11.7 習題 335
11.8 思考題 336
第12章 資料庫和數據處理 339
12.1 資料庫和SQL 339
12.1.1 資料庫表 339
12.1.2 結構化查詢語言 341
12.1.3 SELECT語句 341
12.1.4 WHERE子句 343
12.1.5 內置SQL函式 345
12.1.6 GROUP BY子句 345
12.1.7 多表SQL查詢 346
12.1.8 CREATE TABLE語句 347
12.1.9 INSERT和UPDATE語句 348
12.2 Python中的資料庫編程 349
12.2.1 資料庫引擎和SQLite 349
12.2.2 使用sqlite3創建一個資料庫 349
12.2.3 提交資料庫更改和關閉資料庫 351
12.2.4 使用sqlite3查詢資料庫 351
12.3 函式語言方法 353
12.3.1 列表解析 354
12.3.2 MapReduce問題求解框架 355
12.3.3 MapReduce的抽象概念 358
12.3.4 倒排索引 359
12.4 並行計算 361
12.4.1 並行計算簡介 362
12.4.2 multiprocessing模組中的Pool類 362
12.4.3 並行加速比 364
12.4.4 並行MapReduce 366
12.4.5 並行和順序MapReduce 366
12.5 電子教程案例研究:數據交換 369
12.6 本章小結 369
12.7 練習題答案 369
12.8 習題 372
12.9 思考題 373

相關詞條

熱門詞條

聯絡我們