作 者:(美)梁勇(Y.Daniel Liang) 著;李娜 譯 著
定 價:79
出 版 社:機械工業出版社
出版日期:2015年04月01日
頁 數:451
裝 幀:平裝
ISBN:9787111487685
●出版者的話
譯者序
前言
第一部分程序設計基礎
第1章計算機、程序和Python概述2
1.1引言2
1.2什麼是計算機3
1.2.1中央處理器4
1.2.2比特和字節4
1.2.3內存5
1.2.4存儲設備5
1.2.5輸入和輸出設備6
1.2.6通信設備7
1.3程序設計語言8
1.3.1機器語言8
1.3.2彙編語言8
1.3.3高級語言8
1.4操作繫統10
1.4.1控制和管理繫統行為10
1.4.2調度和分配繫統資源10
1.4.3調度操作10
1.5Python的歷史11
1.6開始學習Python11
1.6.1啟動Python12
1.6.2創建Python源代碼文件13
1.6.3使用Python完成算術運算14
1.7程序設計風格和文檔15
1.7.1恰當的注釋和注釋風格15
1.7.2恰當的空格15
1.8程序設計錯誤16
1.8.1語法錯誤16
1.8.2運行時錯誤16
1.8.3邏輯錯誤16
1.9開始學習圖形化程序設計17
1.9.1繪制圖形並給圖形添加顏色17
1.9.2將筆移到任何位置19
1.9.3繪制奧林匹克環標志20
關鍵術語21
本章總結21
測試題22
編程題22
第2章基本程序設計25
2.1引言25
2.2編寫一個簡單的程序25
2.3從控制臺讀取輸入27
2.4標識符29
2.5變量、賦值語句和賦值表達式29
2.6同時賦值31
2.7定名常量32
2.8數值數據類型和運算符32
2.8.1運算符/、//和**33
2.8.2運算符%33
2.8.3科學記數法34
2.9計算表達式和運算符優先級35
2.10增強型賦值運算符35
2.11類型轉換和四舍五入36
2.12實例研究:顯示當前時間38
2.13軟件開發流程39
2.14實例研究:計算距離42
關鍵術語44
本章總結44
測試題45
編程題45
第3章數學函數、字符串和對像50
3.1引言50
3.2常見的Python函數51
3.3字符串和字符54
3.3.1ASCII碼54
3.3.2統一碼54
3.3.3函數ord和chr54
3.3.4轉義序列55
3.3.5不換行打印56
3.3.6函數str56
3.3.7字符串連接操作56
3.3.8從控制臺讀取字符串57
3.4實例研究:最小數量的硬幣58
3.5對像和方法簡介59
3.6格式化數字和字符串61
3.6.1格式化浮點數62
3.6.2用科學記數法格式化63
3.6.3格式化成百分數63
3.6.4調整格式63
3.6.5格式化整數63
3.6.6格式化字符串64
3.7繪制各種圖形65
3.8繪制帶顏色和字體的圖形67
關鍵術語69
本章總結69
測試題69
編程題69
第4章選擇73
4.1引言73
4.2布爾類型、數值和表達式73
4.3產生隨機數字75
4.4if語句76
4.5實例研究:猜生日77
4.6雙向if-else語句80
4.7嵌套if和多向if-elif-else語句82
4.8選擇語句中的常見錯誤85
4.9實例研究:計算身體質量指數87
4.10實例研究:計算稅款88
4.11邏輯運算符90
4.12實例研究:判定閏年92
4.13實例研究:彩票93
4.14條件表達式94
4.15運算符的優先級和結合方向95
4.16檢測一個對像的位置96
關鍵術語97
本章總結97
測試題98
編程題98
第5章循環107
5.1引言107
5.2while循環108
5.2.1實例研究:猜數字110
5.2.2循環設計策略112
5.2.3實例研究:多道減法題測驗112
5.2.4根據用戶確認控制循環113
5.2.5使用哨兵值控制循環113
5.2.6輸入輸出重定向115
5.3for循環116
5.4嵌套循環118
5.5最小化數值錯誤119
5.6實例研究120
5.6.1問題:找出優選公約數120
5.6.2問題:預測未來學費121
5.6.3問題:蒙特卡羅模擬122
5.7關鍵字break和continue123
5.8實例研究:顯示素數125
5.9實例研究:隨意行走127
關鍵術語129
本章總結129
測試題129
編程題129
第6章函數138
6.1引言138
6.2定義一個函數139
6.3調用一個函數140
6.4帶返回值或不帶返回值的函數142
6.5位置參數和關鍵字參數145
6.6通過傳引用來傳遞參數146
6.7模塊化代碼148
6.8實例研究:將十進制數轉換為十六進制數150
6.9變量的作用域152
6.10默認參數154
6.11返回多個值155
6.12實例研究:生成隨機ASCII碼字符155
6.13函數抽像和逐步求精157
6.13.1自頂向下設計158
6.13.2自頂向下和自底向上的實現159
6.13.3實現細節160
6.13.4逐步求精的優勢163
6.14實例研究:可重用圖形函數163
關鍵術語165
本章總結165
測試題165
編程題166
第二部分面向對像程序設計
第7章對像和類176
7.1引言176
7.2為對像定義類176
7.2.1定義類177
7.2.2構造對像178
7.2.3訪問對像成員179
7.2.4self參數179
7.2.5舉例:使用類180
7.3UML類圖181
7.4不變對像和可變對像184
7.5隱藏數據域186
7.6類的抽像與封裝188
7.7面向對像的思考191
關鍵術語193
本章總結194
測試題194
編程題194
第8章更多字符串和特殊方法198
8.1引言198
8.2str類198
8.2.1創建字符串199
8.2.2處理字符串的函數199
8.2.3下標運算符[]200
8.2.4截取運算符[start:end]200
8.2.5連接運算符+和復制運算符*201
8.2.6in和notin運算符201
8.2.7比較字符串202
8.2.8迭代字符串203
8.2.9測試字符串203
8.2.10搜索子串204
8.2.11轉換字符串205
8.2.12刪除字符串中的空格206
8.2.13格式化字符串207
8.3實例研究:校驗回文串208
8.4實例研究:將十六進制數轉換為十進制數209
8.5運算符重載和特殊方法211
8.6實例研究:Rational類212
關鍵術語216
本章總結217
測試題217
編程題217
第9章使用Tkinter進行GUI程序設計223
9.1引言223
9.2開始使用Tkinter223
9.3處理事件224
9.4小構件類226
9.5畫布231
9.6幾何管理器233
9.6.1網格管理器234
9.6.2包管理器234
9.6.3位置管理器235
9.7實例研究:貸款計算器236
9.8顯示圖像238
9.9菜單239
9.10彈出菜單241
9.11鼠標、按鍵事件和綁定243
9.12動畫245
9.13滾動條248
9.14標準對話框249
關鍵術語250
本章總結251
測試題251
編程題251
第10章列表258
10.1引言258
10.2列表基礎259
10.2.1創建列表259
10.2.2列表是一種序列類型260
10.2.3列表使用的函數260
10.2.4下標運算符[]260
10.2.5列表截取[start:end]261
10.2.6+、*和in/notin運算符262
10.2.7使用for循素262
10.2.8比較列表263
10.2.9列表解析263
10.2.10列表方法264
10.2.11將字符串分成列表265
10.2.12輸入列表265
10.2.13對列表移位266
10.2.14簡化代碼266
10.3實例研究:樂透數268
10.4實例研究:一副撲克牌270
10.5撲克牌圖形用戶界面272
10.6復制列表273
10.7將列表傳遞給函數274
10.8從函數返回一個列表276
10.9實例研究:統計每個字母的出現次數277
10.10查找列表279
10.10.1線性查找法280
10.10.2二分查找法280
10.11排序列表282
10.11.1選擇排序282
10.11.2插入排序284
10.12實例學習:彈球286
關鍵術語288
本章總結288
測試題289
編程題289
第11章多維列表298
11.1引言298
11.2處理二維列表299
11.2.1使用輸入值初始化列表299
11.2.2使用隨機數初始化列表299
11.2.3打印列表299
11.2.4素求和300
11.2.5按列求和300
11.2.6找出和優選的行300
11.2.7隨意打亂301
11.2.8排序301
11.3將二維列表傳遞給函數302
11.4問題:給多選題評分303
11.5問題:找出距離最近的點對304
11.6圖形用戶界面:找出距離最近的點對306
11.7問題:數獨307
11.8實例研究:數獨圖形用戶界面310
11.9多維列表312
11.9.1問題:每日溫度和濕度313
11.9.2問題:猜生日314
關鍵術語315
本章總結315
測試題316
編程題316
第12章繼承和多態330
12.1引言330
12.2父類和子類330
12.3覆蓋方法335
12.4object類336
12.5多態和動態綁定339
12.6isinstance函數340
12.7實例研究:可重用時鐘342
12.8類之間的關繫347
12.8.1關聯347
12.8.2聚合和組合348
12.9實例研究:設計Course類349
12.10為棧設計類350
12.11實例研究:FigureCanvas類352
關鍵術語355
本章總結355
測試題355
編程題355
第13章文件和異常處理364
13.1引言364
13.2文本輸入和輸出364
13.2.1打開一個文件365
13.2.2寫入數據366
13.2.3測試文件的存在性367
13.2.4讀數據367
13.2.5從文件讀取所有數據370
13.2.6追加數據371
13.2.7讀寫數值數據371
13.3文件對話框373
13.4實例研究:統計文件中的字符個數375
13.5從網站上獲取數據376
13.6異常處理378
13.7拋出異常381
13.8使用對像處理異常383
13.9定義自定制異常類384
13.10使用Pickling進行二進制IO388
13.10.1卸載和加載對像388
13.10.2檢測文件末尾389
13.11實例研究:地址簿390
關鍵術語393
本章總結393
測試題394
編程題394
第三部分數據結構和算法
第組、集合和字典398
14.1引言398
1組399
14.3集合401
14.3.1創建集合401
14.3.2操作和訪問集合402
14.3.3子集和超集402
14.3.4相等性測試403
14.3.5集合運算403
14.4比較集合和列表的性能407
14.5實例研究:統計關鍵字408
14.6字典409
14.6.1創建一個字典410
14.6.2添加、修改和獲取值410
14.6.3刪除條目410
14.6.4循環條目411
14.6.5len函數411
14.6.6檢測一個關鍵字是否在字典中411
14.6.7相等性檢測411
14.6.8字典方法412
14.7實例研究:單詞的出現次數413
關鍵術語415
本章總結415
測試題416
編程題416
第15章遞歸419
15.1引言419
15.2實例研究:計算階乘420
15.3實例研究:計算斐波那契數422
15.4使用遞歸解決問題424
15.5遞歸輔助函數426
15.5.1選擇排序427
15.5.2二分查找427
15.6實例研究:求出目錄的大小428
15.7實例研究:漢諾塔430
15.8實例研究:分形432
15.9實例研究:八皇後435
15.10遞歸和迭代437
15.11尾遞歸438
關鍵術語439
本章總結439
測試題439
編程題439
附錄APython關鍵字446
附錄BASCII字符集447
附錄C數制繫統448
*第16章開發高效算法
*第17章排序
*第18章鏈表、棧、隊列及優先隊列
*第19章二分查找樹
*第20章AVL樹
*第21章哈希:實現字典與集合
*第22章圖及其應用
*第23章加權圖及其應用
本書以問題驅動的方式對Python程序設計進行綜合介紹。全書共分三個部分,首先介紹基本程序設計技術以及數據類型、變量、常量、簡單函數等內容,隨後利用抽像、封裝和多態性來了解面向對像程序設計,最後通過對數據結構和算法的講解,循序漸進,掌握Python程序設計。書中引入實例解釋基本概念,同時提供大量不同難度的編程題,幫助讀者理解和鞏固。本書可作為高等院校相關專業的基礎教材,也可作為Python語言及編程開發愛好者的參考資料。
(美)梁勇(Y.Daniel Liang) 著;李娜 譯 著
梁勇(Y.Daniel Liang),阿姆斯特朗亞特蘭大州立大學計算機科學繫Yamacraw教授。之前曾是普度大學計算機科學繫副教授,並曾兩次獲得普度大學傑出研究獎。他所編寫的Java教程在美國大學Java課程中采用率優選。