第1部分 引 論
第1章 關于本書 3
1.1 什么人要學編程 3
1.2 本書的內容 4
1.3 為什么選擇Python 5
1.4 如何閱讀本書 5
1.5 本書內容的組織 6
第2章 學習編程的要求 8
2.1 關于編程者 8
2.2 先決條件 9
2.3 Python 9
第3章 什么是編程 11
3.1 定義 11
3.2 發(fā)展史簡述 12
3.3 各種程序的共同特點 13
第4章 開始 20
4.1 使用Python 20
4.2 Python的出錯消息 21
第2部分 程序設計基礎
第5章 簡單的指令序列 25
5.1 簡單的語句 25
5.2 Python中的計算器 25
5.3 使用格式化字符串 27
5.4 注釋 28
5.5 訪問模塊 29
第6章 原材料——數據 31
6.1 數據定義 31
6.2 變量定義 32
6.3 基本數據類型 33
6.4 集合 38
6.4.1 Python中的集合 38
6.4.2 其他集合類型 42
6.5 高級數據類型 44
6.5.1 文件 44
6.5.2 日期和時間 44
6.5.3 復雜/用戶定義類型 45
6.6 Python的專用運算符 47
第7章 順序結構 49
7.1 計算面積 51
7.1.1 求圓的面積 51
7.1.2 求復雜多邊形的面積 51
7.2 12倍乘法表 52
第8章 循環(huán)——重復的藝術 54
8.1 For循環(huán) 54
8.2 While循環(huán) 55
8.3 再次返回12倍乘法表 56
8.4 嵌套循環(huán) 57
第9章 選擇 60
9.1 鏈式IF語句 61
9.2 使用邏輯運算符合并判斷條件 63
第10章 與用戶交互 66
10.1 從用戶那里獲得數據 66
10.2 命令行變量 67
第11章 模塊化程序設計 69
11.1 什么是模塊 69
11.2 使用函數 70
11.3 使用模塊 71
11.3.1 sys模塊 71
11.3.2 其他的模塊 72
11.4 定義新函數 73
11.4.1 從函數中返回值 74
11.4.2 函數中值的傳遞 75
11.4.3 默認參數值 75
11.4.4 單詞計數 78
11.5 創(chuàng)建自己的模塊 79
第12章 文件和文本處理 82
12.1 輸入和輸出文件 82
12.2 處理大型文件 83
12.3 修改已經存在的文件 85
12.4 往文件中添加數據 86
12.5 單詞計數 87
第13章 編程風格 89
13.1 多一些注釋 89
13.1.1 描述代碼行 89
13.1.2 段落描述 90
13.1.3 描述文件 91
13.2 文檔字符串 91
13.3 變量名 92
第14章 錯誤處理 94
14.1 傳統(tǒng)的錯誤處理方法 94
14.2 特殊的錯誤處理方法 95
14.3 出現(xiàn)錯誤 96
14.4 嵌套錯誤處理程序 98
14.5 日志文件 99
第3部分 高 級 專 題
第15章 遞歸 103
15.1 什么是遞歸 103
15.2 列表的遞歸 105
第16章 名字空間 107
16.1 簡單回顧 107
16.2 Python的方法 108
16.2.1 避免函數中的名字沖突 109
16.2.2 變量名的處理 110
第17章 面向對象編程 112
17.1 什么是面向對象編程 112
17.2 數據和函數的結合 113
17.3 定義類 113
17.4 使用類 114
17.5 同樣的方法,不同的結果 115
17.6 繼承 116
17.6.1 BankAccount類 116
17.6.2 InterestAccount 類 118
17.6.3 ChargingAccount類 118
17.6.4 測試系統(tǒng) 119
第18章 事件驅動編程 122
18.1 模擬一個事件循環(huán) 122
18.2 一個GUI程序 124
第19章 正則表達式 127
19.1 定義 127
19.2 序列 128
19.3 重復 129
19.4 條件 131
19.5 在Python中使用正則表達式 132
第20章 調試 136
20.1 停止運行、查找錯誤和思考原因 136
20.2 輸出 137
20.3 Python調試器 138
20.3.1 啟動調試器 139
20.3.2 跟蹤代碼 140
20.3.3 斷點 142
20.4 用IDLE進行調試 144
20.5 注 146
第21章 設計解決方案 148
21.1 理解問題 148
21.1.1 需求說明 149
21.1.2 非功能性需求 149
21.1.3 優(yōu)先級和范圍 149
21.2 考慮選擇 150
21.3 靜態(tài)設計和動態(tài)設計 150
21.3.1 數據或對象 150
21.3.2 定時和同步 151
21.4 在環(huán)境中工作 151
21.4.1 操作系統(tǒng)的限制 152
21.4.2 與現(xiàn)有系統(tǒng)的集成 152
21.5 測試 152
21.6 配置管理 153
第4部分 案 例 研 究
第22章 文法計數器 157
22.1 計算行數、單詞數及字符數 157
22.2 計算句子數目 159
22.3 將偽代碼轉換為模塊 160
22.3.1 getCharGroups() 162
22.3.2 getPunctuation() 163
22.4 最終的文法模塊 165
22.5 類和對象 166
22.5.1 文本文檔 169
22.5.2 HTML文檔 170
22.6 添加圖形用戶界面(GUI) 171
22.7 設計圖形用戶界面 173
第23章 猜謎游戲 180
23.1 Hangman游戲 180
23.2 為解決方案創(chuàng)建原型 182
23.2.1 選擇一個單詞 182
23.2.2 讀入已猜測的字母 183
23.2.3 保留得分 183
23.3 對象框架 184
23.3.1 Game 185
23.3.2 Target 185
23.3.3 Guess 185
23.3.4 Outcome 185
23.4 抽象框架 185
23.5 測試框架——一個簡單的單詞游戲 187
23.6 基于文本的Hangman 189
23.7 GUI Hangman 192
23.8 其他想法 199
23.8.1 Mastermind 199
23.8.2 Rock/Scissors/Paper 199
23.8.3 Minesweeper 199
結尾 201
第5部分 附 錄
附錄A 安裝和調試Python 205
A.1 運行安裝程序 205
A.2 測試安裝 206
A.3 運行IDLE 206
A.3.1 使用Python提示符 207
A.3.2 從文件中生成、保存和運行程序 207
A.4 最后工作 208
附錄B 一些有用的編程語言 209
B.1 Python 209
B.1.1 Hello World 209
B.1.2 實用性 210
B.2 BASIC 210
B.2.1 Hello World 210
B.2.2 實用性 211
B.2.3 BASIC的其他版本 211
B.3 C/C++ 212
B.3.1 Hello World 212
B.3.2 實用性 213
B.4 Java 213
B.4.1 Hello World 214
B.4.2 實用性 214
B.5 對象Pascal(Delphi) 215
B.5.1 Hello World 215
B.5.2 實用性 216
B.6 Perl 216
B.6.1 Hello World 217
B.6.2 實用性 218
B.7 Smalltalk 218
B.7.1 Hello World 218
B.7.2 實用性 219
B.8 其他有意義的語言 219
B.8.1 Awk 220
B.8.2 Eiffel 220
B.8.3 Lisp 220
B.8.4 Prolog 221
B.8.5 Ruby 221
B.8.6 Tcl/Tk 221
附錄C 參考資料 222
C.1 可讀書目 222
C.1.1 Python 222
C.1.2 其他語言 223
C.1.3 基本編程 224
C.1.4 面向對象編程 225
C.2 可訪問的站點 227