具體描述
産品特色
編輯推薦
Python之父作序推薦 知名Python編程從入門到實踐教程書 基於Python3編寫 提供代碼示例和教學PPT
本書具有以下特點:
● 廣泛使用計算機圖形學——本書提供一個簡單的圖形軟件包graphics.py作為示例。
● 生動有趣的例子——本書包含瞭完整的編程示例來解決實際問題。
● 親切自然的行文——以自然的敘事風格介紹瞭重要的計算機科學概念。
● 靈活的螺鏇式學習過程——簡單地呈現概念,逐漸介紹新的思想,章節末加以鞏固強化。
● 時機恰好地介紹對象——本書既不是嚴格的“早講對象”,也不是“晚講對象”,而是在命令式編程
的基礎上簡要地介紹瞭對象概念。
● 提供豐富的教學素材——提供瞭大量的章末習題。還提供代碼示例和教學PPT下載。
本書以Python語言為工具教授計算機程序設計。本書強調解決問題、設計和編程是計算機科學的核心技能。本書特色鮮明、示例生動有趣、內容易讀易學,適閤Python入門程序員閱讀,也適閤高校計算機專業的教師和學生參考。
訪問異步社區(www.epubit.com.cn)的本書頁麵,可下載本書示例代碼、習題解答和教學PPT。
作者簡介
John Zelle是美國Wartburg大學數學和計算機係教授。他負責教授Python程序設計課程,並且結閤多年的教學經驗編寫瞭本書,在美國高校受到普遍的歡迎。他還從事VR、AI等方麵的研究,發錶瞭一些機器學習方麵的論文。
內容簡介
《Python程序設計 第3版》是麵嚮大學計算機科學專業的教材。本書以Python語言為工具,采用相當傳統的方法,強調解決問題、設計和編程是計算機科學的核心技能。
全書共13章,此外,還包含兩個附錄。第 1章到第5章介紹計算機與程序、編寫簡單程序、數字計算、對象和圖形、字符串處理等基礎知識。第6章到第8章介紹函數、判斷結構、循環結構和布爾值等話題。第9章到第 13章著重介紹一些較為高檔的程序設計方法,包括模擬與設計、類、數據集閤、麵嚮對象設計、算法設計與遞歸等。附錄部分給齣瞭Python快速參考和術語錶。每一章的末尾配有豐富的練習,包括復習問題、討論和編程聯係等多種形式,幫助讀者鞏固該章的知識和技能。
《Python程序設計 第3版》特色鮮明、示例生動有趣、內容易讀易學,適閤Python入門程序員閱讀,也適閤高校計算機專業的教師和學生參考。
作者簡介
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
《Python程序設計(第3版)》精彩內容預覽 導言:開啓你的編程之旅 你是否曾對電腦如何運作充滿好奇?是否渴望親手構建齣色的應用程序?《Python程序設計(第3版)》將是你邁入精彩紛呈的編程世界最堅實的起點。本書並非枯燥的技術手冊,而是一本循序漸進、注重實踐的指南,旨在幫助零基礎的讀者快速掌握Python這門強大而富有魅力的編程語言。我們相信,通過清晰的講解、豐富的示例和精心設計的練習,你將發現編程的樂趣,並能夠自信地將創意轉化為現實。 第一部分:Python基礎——構築你的編程基石 在這一部分,我們將從最基本、最核心的概念入手,為你搭建牢固的Python編程知識體係。 第一章:初識Python,擁抱極簡 Python簡介: 我們將深入探討Python為何如此受歡迎,它在各個領域的廣泛應用,以及它相比其他語言的獨特優勢,例如易讀性、豐富的庫生態係統以及跨平颱兼容性。你將瞭解到Python不僅僅是一門編程語言,更是一種解決問題的強大工具。 Python的安裝與環境配置: 彆擔心,我們為你準備瞭詳盡的圖文並茂的指南,讓你輕鬆完成Python的安裝,並配置好高效的開發環境。無論是Windows、macOS還是Linux,我們都會提供清晰的步驟,讓你能夠快速開始編碼。 你的第一個Python程序: “Hello, World!”,這不僅僅是一句簡單的問候,更是你敲響編程大門的第一個音符。我們將引導你編寫並運行你的第一個Python程序,感受代碼執行的魔力,並初步瞭解程序的運行機製。 Python的開發工具: 除瞭基本的文本編輯器,我們還將介紹一些流行的Python集成開發環境(IDE)和代碼編輯器,例如VS Code、PyCharm等,它們能極大地提高你的編程效率,提供代碼補全、語法高亮、調試等功能。 第二章:數據之舞——變量、數據類型與運算符 變量: 想象變量是存儲信息的盒子,我們將學習如何給這些盒子命名,以及如何往裏麵裝載不同的數據。 數據類型: Python擁有豐富的數據類型,我們將逐一探索: 整型(int): 用於錶示整數,如10, -5, 0。 浮點型(float): 用於錶示帶小數的數字,如3.14, -0.5, 2.0。 字符串(str): 用於錶示文本信息,如“你好,世界!”, “Python”。我們將學習如何創建、拼接和操作字符串。 布爾型(bool): 用於錶示真(True)或假(False),是邏輯判斷的基礎。 運算符: 它們是進行數學計算和邏輯比較的工具: 算術運算符: 加(+)、減(-)、乘()、除(/)、取模(%)、冪()、整除(//)。 比較運算符: 等於(==)、不等於(!=)、大於(>)、小於(<)、大於等於(>=)、小於等於(<=)。 邏輯運算符: 與(and)、或(or)、非(not),它們用於組閤和反轉布爾錶達式。 賦值運算符: 簡單賦值(=),以及復閤賦值如加等於(+=)、減等於(-=)等,讓代碼更簡潔。 類型轉換: 有時我們需要將一種數據類型轉換為另一種,例如將字符串“123”轉換為整數123,我們將學習如何進行安全的類型轉換。 第三章:流程控製——讓程序“思考” 條件語句(if, elif, else): 學習如何讓程序根據不同的條件做齣不同的決策。我們將通過實際例子,如判斷用戶輸入的年齡是否成年,來掌握條件判斷的強大能力。 循環語句(for, while): 當我們需要重復執行某段代碼時,循環就派上用場瞭。 for循環: 適用於已知循環次數的情況,例如遍曆列錶中的每一個元素。我們將學習`range()`函數,讓循環更加靈活。 while循環: 適用於條件未知,需要循環直到某個條件不再滿足的情況,例如讀取用戶輸入直到用戶輸入“退齣”。 break和continue語句: 這兩個關鍵字能幫助我們更精細地控製循環的執行流程,例如在滿足某個條件時提前跳齣循環(`break`),或跳過當前循環的剩餘部分進入下一次循環(`continue`)。 第四章:數據容器——高效組織信息 列錶(list): 有序、可變的數據集閤,你可以把它想象成一個可以添加、刪除、修改元素的數組。我們將學習如何創建列錶、訪問列錶元素、添加和刪除元素,以及列錶的常用方法(如`append()`, `insert()`, `remove()`, `pop()`)。 元組(tuple): 有序、不可變的數據集閤。一旦創建,元組的元素就不能被修改,這使得它在某些場景下比列錶更安全。我們將學習如何創建元組、訪問元組元素,以及元組的不可變性帶來的優勢。 字典(dict): 無序、可變鍵值對的集閤。你可以將其類比為現實生活中的詞典,通過“鍵”(key)來查找對應的“值”(value)。我們將學習如何創建字典、訪問字典元素、添加和刪除鍵值對,以及字典的常用方法(如`keys()`, `values()`, `items()`)。 集閤(set): 無序、不重復的元素集閤。集閤主要用於進行成員測試、刪除重復項以及進行數學上的集閤運算(如並集、交集、差集)。 第二部分:Python進階——掌握更強大的編程技法 在掌握瞭基礎知識後,我們將進一步深入,學習更高級、更實用的Python編程技巧。 第五章:函數——代碼的模塊化與復用 函數的定義與調用: 學習如何創建自己的函數,將重復的代碼塊封裝起來,提高代碼的可讀性和可維護性。 參數與返迴值: 掌握函數如何接收輸入(參數)以及如何輸齣結果(返迴值)。我們將探討位置參數、關鍵字參數、默認參數以及可變參數。 作用域: 理解局部變量和全局變量的區彆,以及它們在程序中的生命周期,避免因變量作用域混淆而産生的錯誤。 遞歸: 學習一種強大的函數調用自身來解決問題的技巧,通過經典的斐波那契數列和階乘問題,讓你領略遞歸的魅力。 第六章:模塊與包——組織和管理你的代碼 模塊(Module): 將相關的函數和變量組織到一個單獨的文件中,方便復用。我們將學習如何導入和使用Python內置的模塊(如`math`, `random`, `datetime`),以及如何創建自己的模塊。 包(Package): 組織模塊的更高層次的結構,就像文件夾一樣,可以包含多個模塊。我們將瞭解如何組織和使用包。 第三方庫的安裝與使用: Python擁有極其豐富的第三方庫,它們極大地擴展瞭Python的功能。我們將學習如何使用`pip`工具安裝和管理這些庫,例如用於數據科學的NumPy和Pandas,用於Web開發的Flask和Django。 第七章:文件操作——與文件“對話” 文件的打開與關閉: 學習如何安全地打開和關閉文件,確保資源得到釋放。 文件的讀取: 掌握讀取文本文件和二進製文件的不同方法,如逐行讀取、一次性讀取全部內容。 文件的寫入: 學習如何嚮文件中寫入文本和數據,並控製寫入模式(覆蓋或追加)。 `with`語句: 瞭解使用`with`語句可以自動管理文件的打開和關閉,讓文件操作更加簡潔和安全。 第八章:麵嚮對象編程(OOP)——構建更復雜的係統 類(Class)與對象(Object): 理解麵嚮對象編程的核心概念,如何通過類來定義對象的藍圖,以及如何創建對象。 屬性(Attribute)與方法(Method): 學習如何為對象定義數據(屬性)和行為(方法)。 封裝、繼承與多態: 深入理解麵嚮對象的三大特性,它們如何幫助我們構建齣模塊化、可擴展、易於維護的代碼。 構造函數與析構函數: 瞭解在對象創建和銷毀時自動調用的特殊方法。 第三部分:Python實踐——解決實際問題 理論結閤實踐是學習編程的最佳方式。《Python程序設計(第3版)》將引導你運用所學知識,解決一係列實際編程問題。 第九章:異常處理——應對程序中的“意外” `try-except`塊: 學習如何捕獲和處理程序運行過程中可能齣現的錯誤(異常),避免程序崩潰,提升程序的健壯性。 不同的異常類型: 瞭解常見的異常類型,如`ZeroDivisionError`(除零錯誤)、`TypeError`(類型錯誤)、`FileNotFoundError`(文件未找到)等。 `finally`塊: 學習如何使用`finally`塊來執行無論是否發生異常都會執行的代碼,常用於資源清理。 第十章:常用模塊實踐 `math`模塊: 進行復雜的數學計算,如三角函數、對數、指數等。 `random`模塊: 生成僞隨機數,用於模擬、遊戲開發等場景。 `datetime`模塊: 處理日期和時間,進行日期計算、格式化等操作。 `os`模塊: 操作係統交互,文件和目錄操作,進程管理等。 `sys`模塊: Python解釋器相關的信息和操作。 第十一章:簡單項目實戰 小型命令行工具: 例如一個簡單的文本計數器,可以統計文件中單詞或字符的數量。 基礎數據處理: 使用列錶、字典等數據結構,進行數據的讀取、過濾、排序和分析。 簡單的文件管理腳本: 例如一個文件備份腳本,可以定期備份指定文件夾。 文本遊戲: 編寫一個簡單的猜數字或文字冒險遊戲,讓你體驗編程的樂趣。 附錄: Python關鍵字列錶 常用函數速查錶 進一步學習資源推薦 結語: 《Python程序設計(第3版)》不僅僅是一本書,它更像是一位經驗豐富的導師,將陪伴你踏上這段激動人心的編程旅程。我們鼓勵你積極動手實踐,多思考,多嘗試。編程是一門實踐的藝術,隻有通過不斷的練習,你纔能真正掌握它,並用它來創造無限可能。希望本書能成為你學習Python的寶貴財富,祝你在編程的世界裏,收獲滿滿的成就感!