Python程序設計教程:基於案例的學習方法:原書第3版 Python Programming in Context, 3/e

Bradley N. Miller,David L. Ranum,Julie Anderson 江紅,余青松,余靖譯

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

商品描述

本書採用基於案例的學習方法講解Python程序設計和電腦科學基礎知識,而非採用傳統的基於Python語法或語言元素的篇章結構。書中每一章都圍繞一個應用場景,涉及密碼學、圖像處理、天文學和生物信息學等領域,通過編程實踐幫助讀者快速掌握算法開發和問題求解技能。
本書特色
全面更新至Python 3.8,添加了大量新內容和新特性,並配有可免費下載的源代碼。
在應用場景中螺旋式引入解決問題所必需的語法知識和編程方法,不斷鞏固和拓展所學知識。
強調動手實踐,包含大量不同難度和不同復雜度的編程練習題,便於讀者自主學習及進階。

作者簡介

布蘭德利·N. 米勒(Bradley N. Miller) 路德學院榮休教授,Runestone Interactive的創始人。


大衛·L.拉農(David L. Ranum) 路德學院教授,致力於軟件設計和操作系統方面的科研及教學工作。


朱莉·安德森(Julie Anderson) 退休前任教於羅林斯學院。
她參與撰寫了一系列關於Java和Python語言的大學教材,並曾在計算機書刊出版機構擔任撰稿人、編輯和專欄作家。


---譯者簡介---
江紅 華東師範大學副教授,博士。 
1994年畢業於復旦大學計算機系。
曾獲得上海市教學成果一等獎、華東師範大學教學成果一等獎、華東師範大學優秀任課教師獎等榮譽。


余青松 華東師範大學高級工程師。 
1990年畢業於華東師範大學並留校任教。
編著計算機相關教材30餘本,在國內外學術期刊和學術會議上發表科技論文近百篇。

目錄大綱

出版者的話
譯者序
前言
第1章 Python導論 1
1.1 本章目標 1
1.2 什麽是電腦科學 1
1.3 為什麽要學習電腦科學 2
1.3.1 電腦科學的日常應用 2
1.3.2 電腦科學的重要性 3
1.4 問題求解的策略 3
1.5 Python概述 5
1.5.1 基本元素 6
1.5.2 命名對象 10
1.5.3 抽象 15
1.5.4 循環 22
1.6 本章小結 28
關鍵術語 28
Python關鍵字 29
編程練習題 29
第2章 πthon:估算圓周率的值 30
2.1 本章目標 30
2.2 圓周率是什麽 30
2.3 有關math模塊的進一步討論 31
2.4 阿基米德方法 32
2.4.1 Python實現 33
2.4.2 開發一個計算圓周率pi的函數 34
2.5 累加器估算法 36
2.5.1 累加器模式 36
2.5.2 項的總和:萊布尼茨公式 37
2.5.3 項的乘積:沃利斯公式 39
2.6 蒙特卡羅模擬 41
2.6.1 布爾表達式 43
2.6.2 復合布爾表達式和邏輯運算符 44
2.6.3 選擇語句 45
2.6.4 實現模擬 48
2.6.5 使用圖形可視化結果 50
2.7 本章小結 53
關鍵術語 53
Python關鍵字、模塊和命令 53
編程練習題 54
第3章 密碼以及其他奧秘 55
3.1 本章目標 55
3.2 字符串數據類型 55
3.2.1 拼接 56
3.2.2 重復 56
3.2.3 索引 57
3.2.4 字符串切片 58
3.2.5 字符串搜索 59
3.2.6 字符串方法 60
3.2.7 字符函數 62
3.3 編碼消息和解碼消息 64
3.4 置換加密算法 64
3.4.1 使用置換進行加密 64
3.4.2 解密置換後的消息 66
3.4.3 讀取用戶輸入 68
3.5 替換加密算法 69
3.6 創建密鑰 71
3.7 維吉尼亞加密算法 76
3.8 本章小結 80
關鍵術語 81
Python關鍵字、函數和常量 81
編程練習題 82
第4章 Python集合導論 83
4.1 本章目標 83
4.2 什麽是數據 83
4.3 存儲用於處理的數據 83
4.3.1 再論字符串 83
4.3.2 列表 85
4.4 計算數據的統計量 90
4.4.1 簡單離散度度量 90
4.5 中心趨勢度量 92
4.5.1 均值 92
4.5.2 中值 93
4.5.3 眾數 95
4.6 頻率分佈 100
4.6.1 使用字典計算頻率分佈表 100
4.6.2 不使用字典計算頻率分佈表 101
4.6.3 可視化頻率分佈 103
4.7 離散度:標準差 105
4.8 本章小結 107
關鍵術語 107
Python關鍵字、函數和方法 107
編程練習題 108
第5章 大數據:文件輸入和輸出 109
5.1 本章目標 109
5.2 使用文件處理大數據集 109
5.2.1 文本文件 109
5.2.2 迭代文件中的文本行 111
5.2.3 寫入文件 112
5.2.4 字符串格式化 113
5.2.5 其他文件讀取方法 115
5.3 從互聯網上讀取數據 117
5.3.1 使用CSV文件 117
5.3.2 使用while循環處理數據 118
5.3.3 列表解析 121
5.3.4 從互聯網上讀取JSON數據 125
5.4 數據相關性 128
5.5 本章小結 129
關鍵術語 129
Python關鍵字和函數 130
編程練習題 130
第6章 圖像處理 131
6.1 本章目標 131
6.2 什麽是數字圖像處理 131
6.2.1 RGB顏色模型 131
6.2.2 cImage模塊 132
6.3 基本圖像處理 136
6.3.1 圖像負片 136
6.3.2 灰度圖像 138
6.3.3 一個通用的解決方案:像素映射器 140
6.4 參數、參數傳遞和作用範圍 143
6.4.1 通過賦值調用的參數傳遞 144
6.4.2 名稱空間 145
6.4.3 調用函數和查找名稱 148
6.4.4 模塊和名稱空間 150
6.5 高級圖像處理 151
6.5.1 圖像縮放 151
6.5.2 圖像拉伸:另一種視角 153
6.5.3 翻轉圖像 156
6.5.4 邊緣檢測 158
6.6 本章小結 162
關鍵術語 163
Python關鍵字、函數和變量 163
編程練習題 163
第7章 數據挖掘:聚類分析 164
7.1 本章目標 164
7.2 什麽是數據挖掘 164
7.3 聚類分析:一個簡單的示例 164
7.4 在簡單數據集上實現聚類分析 165
7.4.1 兩點之間的距離 165
7.4.2 聚類和中心點 167
7.4.3 K-均值聚類分析算法 167
7.4.4 K-均值算法的實現 168
7.4.5 K-均值算法的實現(續) 172
7.5 實現聚類分析:地震數據 176
7.5.1 文件處理 176
7.5.2 可視化 178
7.6 聚類分析的缺陷及解決方法 179
7.7 本章小結 180
關鍵術語 180
Python關鍵字 181
編程練習題 181
第8章 密碼分析學 182
8.1 本章目標 182
8.2 概述 182
8.3 破解圍欄加密算法 182
8.3.1 使用字典檢查結果 183
8.3.2 暴力破解法 184
8.3.3 一種圍欄解密算法 186
8.4 破解替換加密算法 187
8.4.1 字母頻率 187
8.4.2 密文頻率分析 192
8.4.3 字母對分析 193
8.4.4 單詞頻率分析 199
8.4.5 偏詞模式匹配 202
8.4.6 正則表達式總結 208
8.5 本章小結 209
關鍵術語 210
Python函數、方法和關鍵字 210
編程練習題 210
第9章 分形圖形:自然界的幾何學 211
9.1 本章目標 211
9.2 概述 211
9.3 遞歸程序 212
9.3.1 遞歸正方形 212
9.3.2 經典遞歸函數 214
9.3.3 繪制遞歸樹 214
9.3.4 謝爾賓斯基三角形 216
9.3.5 謝爾賓斯基三角形的調用樹 218
9.4 雪花、林登麥伊爾系統及其語法 219
9.4.1 ?L-系統 220
9.4.2 自動擴展生長規則 222
9.4.3 更先進的L-系統 223
9.5 本章小結 226
關鍵術語 226
編程練習題 226
第10章 天體 227
10.1 本章目標 227
10.2 概述 227
10.2.1 程序設計 227
10.2.2 面向對象的程序設計 228
10.2.3 Python類 228
10.3 設計和實現Planet類 229
10.3.1 構造方法 229
10.3.2 訪問器方法 231
10.3.3 更改器方法 234
10.3.4 特殊方法 235
10.3.5 方法和self 238
10.3.6 方法存儲和查找的細節 239
10.4 設計和實現Sun類 240
10.5 設計和實現太陽系 241
10.6 製作太陽系的動畫 243
10.6.1 使用Turtle對象 243
10.6.2 行星軌道 247
10.6.3 實現 249
10.7 本章小結 252
關鍵術語 253
Python關鍵字和函數 253
編程練習題 253
第11章 模擬 254
11.1 本章目標 254
11.2 熊和魚 254
11.3 什麽是模擬 254
11.4 游戲規則 255
11.5 設計模擬 255
11.6 實現模擬 257
11.6.1 World類 257
11.6.2 Fish類 261
11.6.3 Bear類 265
11.6.4 主模擬函數 267
11.7 植物繁殖 269
11.8 繼承機制 271
11.9 本章小結 271
關鍵術語 271
Python關鍵字和函數 271
編程練習題 271
第12章 繼承 273
12.1 本章目標 273
12.2 概述 273
12.3 基本設計 274
12.4 基本實現 277
12.4.1 Canvas類 278
12.4.2 GeometricObject類 279
12.4.3 Point類 280
12.4.4 Line類 281
12.4.5 測試實現的代碼 282
12.5 理解繼承 283
12.6 局限性 285
12.7 改進實現 287
12.8 實現多邊形 291
12.9 本章小結 293
關鍵術語 293
Python關鍵字、方法和裝飾器 293
編程練習題 294
第13章 電子游戲 295
13.1 本章目標 295
13.2 概述 295
13.2.1 事件驅動編程 295
13.2.2 模擬事件循環 296
13.2.3 多線程事件循環 297
13.3 基於turtle的事件驅動編程 300
13.3.1 一個使用按鍵的簡單蝕刻素描程序 300
13.3.2 使用鼠標單擊放置turtle 303
13.3.3 彈跳的turtle 305
13.4 創建自己的電子游戲 309
13.4.1 LaserCannon類 310
13.4.2 BoundedTurtle類 312
13.4.3 Drone類 313
13.4.4 Bomb類 315
13.4.5 把所有代碼片段整合在一起 315
13.5 本章小結 317
關鍵術語 317
Python關鍵字和裝飾器 317
編程練習題 317
網絡資源一
附錄A 安裝必需的軟件
附錄B Python快速參考
附錄C turtle參考
附錄D 部分“動手實踐”參考答案