《Python3.6編程實踐指南——計算機科學入門(原書第3版)》是2018年機械工業出版社出版的圖書,作者是Paul Gries,Jennifer Campbell,Jason Montojo。
基本介紹
- 書名:Python3.6編程實踐指南——計算機科學入門(原書第3版)
- 作者:Paul Gries,Jennifer Campbell,Jason Montojo
- ISBN:9787111609940
- 定價:69元
- 出版社:機械工業出版社
- 出版時間:2018年11月
- 裝幀:平裝
- 開本:16開
內容簡介,作者簡介,圖書目錄,
內容簡介
《Python3.6編程實踐指南——計算機科學入門》(原書第3版)通過Python語言介紹了編程的基本知識,內容包括現代程式語言常用的各種數據存儲和基本處理方法,如數值、字元串、列表、集合、字典和文本信息;程式的條件和循環控制結構;函式的概念、定義和套用;編程方法以及測試和調試思路。本書也介紹了一些更高級的編程知識,包括面向對象的編程方法、圖形用戶界面的構建以及資料庫的處理。
zhua曲子白渡白顆
作者簡介
喬海燕博士,中山大學數據科學與計算機學院副教授,研究領域為類型論及其在計算機科學中的套用、函式程式設計等,主講課程有《Python程式設計基礎》《Haskell函式程式設計》等。
圖書目錄
譯者序
原書前言
致謝
作者簡介
第1 章 什麼是編程 // 1
1.1 程式和編程 //2
1.2 什麼是程式語言 //3
1.3 什麼是程式錯誤(Bug) //3
1.4 方括弧、圓括弧和花括弧的區別 //4
1.5 安裝Python //4
第2 章 你好,Python // 5
2.1 計算機如何運行一個Python 程式 //5
2.2 表達式和值:用Python 做算術 //6
2.2.1 類型 // 7
2.2.2 整數除法、模和冪運算 // 8
2.3 什麼是類型 //9
2.3.1 有窮精度 // 10
2.3.2 運算的優先權 // 10
2.4 變數和計算機記憶體:記憶值 //12
2.4.1 值、變數和計算機記憶體 // 13
2.4.2 賦值語句 // 14
2.4.3 給變數重新賦值 // 15
2.4.4 增強賦值 // 16
2.5 Python 如何告訴用戶出錯了 //18
2.6 占多行的單個語句 //19
2.7 代碼的描述 //20
2.8 增強代碼的可讀性 //21
2.9 本章小結 //21
2.10 習題 //22
第3 章 函式的設計與套用 // 24
3.1 Python 提供的函式 //24
3.2 記憶體地址:Python 如何跟蹤記憶體存儲的值 //27
3.3 自定義函式 //28
3.4 用局部變數作臨時存儲 //31
3.5 在記憶體模型中跟蹤函式調用 //32
3.6 設計新函式:一個選單 //38
3.6.1 設計三個有關生日的函式 // 40
3.7 編寫和運行一個程式 //48
3.8 省略一個返回語句:None //50
3.9 處理代碼不能處理的情況 //50
3.10 本章小結 //51
3.11 習題 //52
第4 章 文本的處理 // 54
4.1 構造字元串 //54
4.1.1 串上的操作 // 55
4.2 在串中使用特殊字元 //57
4.3 構建多行串 //58
4.4 列印信息 //59
4.5 從鍵盤獲取信息 //62
4.6 本章小結 //63
4.7 習題 //63
第5 章 選擇 // 65
5.1 布爾類型 //65
5.1.1 布爾運算 // 65
5.1.2 關係運算 // 68
5.1.3 比較運算的組合 // 70
5.1.4 短路求值 // 72
5.1.5 串的比較 // 72
5.2 選擇執行的語句 //73
5.3 嵌套條件語句 //79
5.4 記住一個布爾表達式求值的結果 //79
5.5 本章小結 //81
5.6 習題 //81
第6 章 程式組織的模組化方法 // 84
6.1 導入模組 //85
6.2 定義自己的模組 //89
6.2.1 導入時發生了什麼 // 90
6.2.2 在導入時選擇要運行的代碼:__main__ // 91
6.3 半自動地測試代碼 //95
6.4 函式分組的原則 //96
6.5 本章小結 //96
6.6 習題 //97
第7 章 方法的使用 // 98
7.1 模組、類和方法 //98
7.2 面向對象的調用方法 //100
7.3 探索字元串方法 //101
7.4 那些下劃線是什麼 //105
7.5 本章小結 //107
7.6 習題 //107
第8 章 使用列表存儲數據集合 // 109
8.1 存儲和訪問列表中的數據 //109
8.1.1 空列表 // 111
8.1.2 列表是異構的 // 111
8.2 列表類型注釋 //112
8.3 修改列表 //113
8.4 列表上的操作 //114
8.4.1 列表上的in 操作符 // 116
8.5 列表切片 //116
8.6 使用別名:名稱代表什麼 //118
8.6.1 可變參數 // 118
8.7 列表方法 //120
8.8 處理列表的列表 //121
8.9 本章小結 //123
8.10 習題 //123
第9 章 使用循環重複代碼 // 126
9.1 處理列表中的數據項 //126
9.2 處理字元串中的字元 //128
9.3 在某個範圍的數字上循環 //128
9.3.1 生成數字範圍 // 128
9.4 用索引處理列表 //130
9.4.1 使用索引處理並行列表 // 132
9.5 循環嵌套循環 //133
9.5.1 嵌套列表上的循環 // 134
9.5.2 循環不規則列表 // 135
9.6 循環直到某個條件成立 //136
9.6.1 無限循環 // 138
9.7 基於用戶輸入的重複 //138
9.8 使用break 和continue 控制循環 //139
9.8.1 break 語句 // 139
9.8.2 continue 語句 // 141
9.8.3 關於break 和continue的警告 // 142
9.9 本章小結 //143
9.10 習題 //143
第10 章 檔案讀寫 // 146
10.1 檔案分多少種 //146
10.2 打開檔案 //147
10.2.1 with 語句 // 148
10.2.2 計算機上的檔案是如何組織的 // 149
10.2.3 指定想要的檔案 // 149
10.3 讀取檔案的方法 //150
10.3.1 讀取方法 // 150
10.3.2 Readlines 方法 // 151
10.3.3 ""For Line in File"" 方法 // 152
10.3.4 Readline 方法 // 153
10.4 網際網路上的檔案 //155
10.5 寫入檔案 //156
10.6 使用StringIO 編寫示例調用 //157
10.7 編寫使用檔案讀取技術的算法 //159
10.7.1 跳過標題 // 159
10.7.2 處理數據中缺失的值 // 161
10.7.3 處理空格分隔的數據 // 163
10.8 多行記錄 //167
10.9 向前看 //170
10.10 本章小結 //172
10.11 習題 //172
第11 章 使用其他容器類型存儲數據 // 174
11.1 使用集合存儲數據 //174
11.1.1 集合運算 // 176
11.1.2 集合示例:北極鳥 // 178
11.1.3 集合的內容一定是不可變的 // 179
11.2 使用多元組存儲數據 //179
11.2.1使用多元組賦值給多個變數 // 183
11.3 用字典存儲數據 //184
11.3.1 更新和檢查成員 // 186
11.3.2 遍歷字典 // 187
11.3.3 字典操作 // 188
11.3.4 字典示例 // 190
11.4 反轉字典 //191
11.5 在元組、集合和字典中使用in運算符 //192
11.6 各種容器的比較 //193
11.7 創建新的類型注釋 //193
11.8 本章小結 //194
11.9 習題 //195
第12 章 算法的設計 // 197
12.1 查找兩個最小值 //197
12.1.1 查找、移除、查找 // 199
12.1.2 排序、確定最小值、獲取索引 // 201
12.1.3 遍歷列表 // 202
12.2 定時功能 //205
12.3 本章小結 //207
12.4 習題 //207
第13 章 搜尋與排序 // 209
13.1 搜尋列表 //209
13.1.1 線性搜尋概述 // 209
13.1.2 線性搜尋的while 循環版本 // 211
13.1.3 線性搜尋的for 循環版本 // 212
13.1.4 哨兵搜尋 // 213
13.1.5 對搜尋進行計時 // 214
13.1.6 線性搜尋的運行時間 // 215
13.2 二分搜尋 //215
13.2.1 二分搜尋的運行時間 // 219
13.2.2 內置二分搜尋 // 219
13.3 排序 //220
13.3.1 選擇排序 // 221
13.3.2 插入排序 // 225
13.3.3 性能 // 227
13.4 更高效的排序算法 //229
13.4.1 第一次嘗試 // 229
13.5 歸併排序:一種快速排序算法 //229
13.5.1 歸併兩個有序列表 // 230
13.5.2 歸併排序 // 230
13.5.3 歸併排序的分析 // 232
13.6 本章小結 //233
13.7 習題 //234
第14 章 面向對象的編程 // 236
14.1 理解一個問題域 //236
14.2 isinstance 函式、object 類和Book 類 //237
14.3 在Book 類中編寫一個方法 //240
14.4 使用Python 語法:更多特殊的方法 //246
14.5 面向對象理論的一些知識 //249
14.5.1 封裝 // 249
14.5.2 多態 // 250
14.5.3 繼承 // 251
14.6 案例學習:分子、原子和PDB檔案 //254
14.6.1 Atom 類 // 255
14.6.2 Molecule 類 // 256
14.7 本章小結 //258
14.8 習題 //258
第15 章 測試與調試 // 262
15.1 為什麼需要做程式測試 //262
15.2 案例學習:測試above_freezing //263
15.2.1 為above_freezing 選擇測試樣例 // 263
15.2.2 使用unittest 模組測試above_freezing // 264
15.3 案例學習:測試函式running_sum //267
15.3.1 為函式running_sum 選擇測試樣例 // 268
15.3.2 使用unittest 模組測試running_sum 函式 // 268
15.4 選擇測試樣例 //273
15.5 尋找程式錯誤 //273
15.6 本章小結 //274
15.7 習題 //274
第16 章 創建圖形用戶接口 // 277
16.1 使用tkinter 模組 //277
16.2 構建一個基本的GUI //278
16.2.1 在小部件中使用可修改變數 // 279
16.2.2 使用框架類型來組合小部件 // 280
16.2.3 使用輸入框類型從用戶處獲取信息 // 281
16.3 模型、視圖和控制器 //281
16.3.1 使用Lambda // 283
16.4 自定義可視化樣式 //286
16.4.1 改變字型 // 286
16.4.2 改變顏色 // 286
16.4.3 小部件的布局 // 288
16.5 其他小部件簡介 //289
16.5.1 使用文本 // 289
16.5.2 使用複選按鈕 // 290
16.5.3 使用選單 // 291
16.6 面向對象的GUI //292
16.7 本章小結 //293
16.8 習題 //294
第17 章 資料庫 // 295
17.1 概述 //295
17.2 創建和填充 //296
17.2.1 保存更改 // 298
17.2.2 關閉連線 // 299
17.3 數據檢索 //299
17.3.1 查詢條件 // 301
17.4 更新和刪除 //301
17.5 為缺失的數據使用NULL //302
17.6 使用連線來組合表格 //303
17.6.1 移除重複值 // 306
17.7 鍵和約束 //307
17.8 高級功能 //308
17.8.1 聚合 // 308
17.8.2 分組 // 308
17.8.3 自連線 // 309
17.8.4 嵌套查詢 // 310
17.8.5 事務 // 312
17.9 本章小結 //313
17.10 習題 //314
參考文獻 //316