程序設計導論:Python計算與應用開發實踐(原書第2版)
語音
編輯
鎖定
討論
上傳視頻
《程序設計導論:Python計算與應用開發實踐(原書第2版)》是2018年機械工業出版社出版的圖書,作者是[美] 盧博米爾·佩爾科維奇(Ljubomir Perkovic)。
書????名
程序設計導論:Python計算與應用開發實踐(原書第2版)
作????者
[美] 盧博米爾·佩爾科維奇(Ljubomir Perkovic)
ISBN
9787111611608定????價
99元
出版社
機械工業出版社
出版時間
2018年11月
開????本
16開
程序設計導論:Python計算與應用開發實踐(原書第2版)內容簡介
編輯
語音
本書不僅僅是傳統的程序設計導論性教材,而且囊括了包羅萬象的計算機科學。書中采用Python作為學生的第一門程序設計語言,提出“正確的時刻+正確的工具”的教學方法,尤為重視應用程序的開發訓練和計算思維的培養,易于教學和實踐。書中首先講解命令式編程,但也很早便引入了對象的概念;在學生具備足夠的基礎知識也更有學習動力之后,書中開始講解自定義類、面向對象編程等更多高級技巧。書中涵蓋了問題求解的核心技術和各類經典算法,這一版還增加了案例章節,所涉及的廣度也有所拓展。[1]
程序設計導論:Python計算與應用開發實踐(原書第2版)圖書目錄
編輯
語音
出版者的話
譯者序
前言
第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.1 字符串運算符 19
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.5 超文本標記語言 318
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
詞條圖冊
更多圖冊
參考資料