Python 程序設計, 3/e Python程序设计 第3版

[美] 約翰·策勒

買這商品的人也買了...

商品描述

《Python程序設計 第3版》是面向大學電腦科學專業的教材。本書以Python語言為工具,採用相當傳統的方法,強調解決問題、設計和編程是電腦科學的核心技能。
全書共13章,此外,還包含兩個附錄。第 1章到第5章介紹電腦與程序、編寫簡單程序、數字計算、對象和圖形、字符串處理等基礎知識。第6章到第8章介紹函數、判斷結構、循環結構和布爾值等話題。第9章到第 13章著重介紹一些較為高檔的程序設計方法,包括模擬與設計、類、數據集合、面向對象設計、算法設計與遞歸等。附錄部分給出了Python快速參考和術語表。每一章的末尾配有豐富的練習,包括復習問題、討論和編程聯系等多種形式,幫助讀者鞏固該章的知識和技能。
《Python程序設計 第3版》特色鮮明、示例生動有趣、內容易讀易學,適合Python入門程序員閱讀,也適合高校電腦專業的教師和學生參考。

作者簡介

[美]約翰·策勒(John Zelle)譯者:王海鵬

John Zelle是美國Wartburg大學數學和計算機系教授。他負責教授Python程序設計課程,並且結合多年的教學經驗編寫了本書,在美國高校受到普遍的歡迎。他還從事VR、AI等方面的研究,發表了一些機器學習方面的論文。

目錄大綱

第1章計算機和程序1 
學習目標1 
1.1通用機器1 
1.2程序的力量2 
1.3什麼是計算機科學2 
1.4硬件基礎3 
1.5編程語言4 
1.6 Python的“魔法” 6 
1.7 Python程序內部10 
1.8混沌與計算機12 
1.9小結13 
1.10練習14 
複習問題14 

第2章編寫簡單程序17 
學習目標17 
2.1軟件開發過程17 
2.2示例程序:溫度轉換器18 
2.3程序要素19 
2.3.1名稱19 
2.3.2表達式20 
2.4輸出語句22 
2.5賦值語句23 
2.5.1簡單賦值23 
2.5.2賦值輸入24 
2.5.3同時賦值26 
2.6確定循環27 
2.7示例程序:終值29 
2.8小結31 
2.9練習32 
複習問題32 

第3章數字計算35 
學習目標35 
3.1數值數據類型35
3.2類型轉換和舍入38 
3.3使用math庫40 
3.4累積結果:階乘42 
3.5計算機算術的局限性44 
3.6小結46 
3.7練習47 
複習問題47 

第4章對象和圖形52 
學習目標52 
4.1概述52 
4.2對象的目標53 
4.3簡單圖形編程53 
4.4使用圖形對象56 
4.5繪製終值60 
4.6選擇坐標64 
4.7交互式圖形66 
4.7.1獲取鼠標點擊67 
4.7.2處理文本輸入68 
4.8 graphics模塊參考70 
4.8.1 GraphWin對象70 
4.8.2圖形對象71 
4.8.3 Entry對象74 
4.8.4顯示圖像74 
4.8.5生成顏色75 
4.8.6控制顯示更新(高檔) 75 
4.9小結76 
4.10練習76 
複習問題76 

第5章序列:字符串、列表和文件81 
學習目標81 
5.1字符串數據類型81 
5.2簡單字符串處理84 
5.3列表作為序列86
5.4字符串表示和消息編碼87 
5.4.1字符串表示87 
5.4.2編寫編碼器88 
5.5字符串方法89 
5.5.1編寫解碼器89 
5.5.2更多字符串方法92 
5.6列表也有方法93 
5.7從編碼到加密94 
5.8輸入/輸出作為字符串操作95 
5.8.1示例應用程序:
日期轉換95 
5.8.2字符串格式化97 
5.8.3更好的零錢計數器99 
5.9文件處理99 
5.9.1多行字符串100 
5.9.2文件處理100 
5.9.3示例程序:批處理
用戶名103 
5.9.4文件對話框(可選) 103 
5.10小結105 
5.11練習106 
複習問題106 

第6章定義函數111 
學習目標111 
6.1函數的功能111 
6.2函數的非正式討論112 
6.3帶有函數的終值程序115 
6.4函數和參數:令人興奮的
細節116 
6.5返回值的函數119 
6.6修改參數的函數122 
6.7函數和程序結構126
6.8小結128 
6.9練習129 
複習問題129 

第7章判斷結構133 
學習目標133 
7.1簡單判斷133 
7.1.1示例:溫度警告133 
7.1.2形成簡單條件135 
7.1.3示例:條件程序執行136 
7.2兩路判斷137 
7.3多路判斷140 
7.4異常處理142 
7.5設計研究:三者大144 
7.5.1策略1:比較每個值和
所有其他值145 
7.5.2策略2:判斷樹146 
7.5.3策略3:順序處理147 
7.5.4策略4:使用Python 148 
7.5.5一些經驗148 
7.6小結149 
7.7練習149 
複習問題149 

第8章循環結構和布爾值153 
學習目標153 
8.1 for循環:快速回顧153 
8.2不定循環154 
8.3常見循環模式155 
8.3.1交互式循環155 
8.3.2哨兵循環156 
8.3.3文件循環158 
8.3.4嵌套循環160 
8.4布爾值計算161
8.4.1布爾運算符161 
8.4.2布爾代數163 
8.5其他常見結構165 
8.5.1後測試循環165 
8.5.2循環加一半166 
8.5.3布爾表達式作為判斷166 
8.6示例:一個簡單的事件循環169 
8.7小結172 
8.8練習173 
複習問題173 

第9章模擬與設計177 
學習目標177 
9.1模擬短柄壁球177 
9.1.1一個模擬問題177 
9.1.2分析與規格說明178 
9.2偽隨機數178 
9.3自頂向下的設計180 
9.3.1頂層設計180 
9.3.2關注點分離182 
9.3.3第二層設計182 
9.3.4設計simNGames 183 
9.3.5第三層設計184 
9.3.6整理完成186 
9.3.7設計過程總結188 
9.4自底向上的實現188 
9.4.1單元測試188 
9.4.2模擬結果189 
9.5其他設計技術190 
9.5.1原型與螺旋式開發190 
9.5.2設計的藝術191 
9.6小結191
9.7練習192 
複習問題192 

第10章定義類196 
學習目標196 
10.1對象的快速復習196 
10.2示例程序:砲彈197 
10.2.1程序規格說明197 
10.2.2設計程序197 
10.2.3程序模塊化199 
10.3定義新類200 
10.3.1示例:多面骰子201 
10.3.2示例:Projectile類203 
10.4用類數據處理205 
10.5對象和封裝207 
10.5.1封裝有用的抽象207 
10.5.2將類放在模塊中208 
10.5.3模塊文檔208 
10.5.4使用多個模塊210 
10.6控件210 
10.6.1示例程序:擲骰
子程序211 
10.6.2創建按鈕211 
10.6.3構建骰子類213 
10.6.4主程序215 
10.7動畫砲彈216 
10.7. 1繪製動畫窗口217 
10.7.2創建ShotTracker 218 
10.7.3創建輸入對話框219 
10.7.4主事件循環220 
10.8小結221
10.9練習222 
複習問題222 

第11章數據集合227 
學習目標227 
11.1示例問題:簡單統計227 
11.2應用列表228 
11.2.1列表和數組229 
11.2.2列表操作229 
11.2.3用列表進行統計231 
11.3記錄的列表235 
11.4用列表和類設計237 
11.5案例分析:Python計算器241 
11.5.1計算器作為對象241 
11.5.2構建界面241 
11.5.3處理按鈕243 
11.6案例研究:更好的砲彈動畫246 
11.6.1創建發射器246 
11.6.2追踪多次射擊248 
11.7無順序集合251 
11.7.1字典基礎251 
11.7.2字典操作252 
11.7.3示例程序:詞頻253 
11.8小結257 
11.9練習257 
複習問題257 

第12章面向對象設計262 
學習目標262 
12.1 OOD的過程262 
12.2案例研究:壁球模擬263 
12.2.1候選對象和方法264
12.2.2實現SimStats 265 
12.2.3實現RBallGame 266 
12.2.4實現Player 267 
12.2.5完整程序268 
12.3案例研究:骰子撲克270 
12.3.1程序規格說明271 
12.3.2識別候選對象271 
12.3.3實現模型272 
12.3.4基於文本的UI 275 
12.3.5開發GUI 277 
12.4 OO概念282 
12.4.1封裝282 
12.4.2多態283 
12.4.3繼承283 
12.5小結284 
12.6練習285 
複習問題285 

第13章算法設計與遞歸287 
學習目標287 
13.1查找287 
13.1.1簡單的查找問題287 
13.1.2策略1:線性查找288 
13.1.3策略2:二分查找288 
13.1.4比較算法289 
13.2遞歸問題解決290 
13.2.1遞歸定義291 
13.2.2遞歸函數292 
13.2.3示例:字符串反轉293 
13.2.4示例:重組詞294 
13.2.5示例:快速指數295
13.2.6示例:二分查找296 
13.2.7遞歸與迭代296 
13.3排序算法298 
13.3.1天真的排序:選擇
排序298 
13.3.2分而治之:歸併排序299 
13.3.3排序比較301 
13.4難題303 
13.4.1漢諾依塔303 
13.4.2停機問題306 
13.4.3結論308 
13.5小結308 
13.6練習309 
複習問題309 
附錄A Python快速參考314 
附錄B術語表323