像電腦科學家一樣思考Python (第2版)pdf

來源:互聯網
上載者:User

標籤:sans   知識   對象   report   搜尋   break   col   log   減法   

:網盤下載

 

 

內容簡介  · · · · · ·

本書以培養讀者以電腦科學家一樣的思維方式來理解Python語言編程。貫穿全書的主體是如何思考、設計、開發的方法,而具體的程式設計語言,只是提供了一個具體情境方便介紹的媒介。

全書共21章,詳細介紹Python語言編程的方方面面。本書從基本的編程概念開始講起,包括語言的文法和語義,而且每個編程概念都有清晰的定義,引領讀者循序漸進地學習變數、運算式、語句、函數和資料結構。書中還探討了如何處理檔案和資料庫,如何理解對象、方法和物件導向編程,如何使用調試技巧來修正語法錯誤、執行階段錯誤和語義錯誤。每一章都配有術語表和練習題,方便讀者鞏固所學的知識和技巧。此外,每一章都抽出一節來講解如何偵錯工具。作者針對每章所專註的語言特性,或者相關的開發問題,總結了調試的方方面面。

本書的第2版與第1版相比,做了很多更新,將程式設計語言從Python 2升級成Python 3,並修改了很多樣本和練習,增加了新的章節,更全面地介紹Python語言。

這是一本實用的學習指南,適合沒有Python編程經驗的程式員閱讀,也適合高中或大學的學生、Python愛好者及需要瞭解編程基礎的人閱讀。對於首次接觸程式設計的人來說,是一本不可多得的佳作。

作者簡介  · · · · · ·

[美] 艾倫 B. 唐尼(Allen B. Downey)

Allen Downey是歐林工程學院的電腦科學教授,曾任教於韋爾斯利學院、科爾比學院和加州大學伯克利分校。他是加州大學伯克利分校的電腦科學博士,並擁有MIT的碩士和學士學位。

譯者介紹

趙普明 畢業清華大學電腦系,從事軟體開發行業近10年。從2.3版本開始接觸Python,工作中使用Python編寫指令碼程式,用於快速原型構建以及日誌計算等日常作業;業餘時,作為一個程式設計語言愛好者,對D、Kotlin、Lua、Clojure、Scala、Julia、Go等語言均有瞭解,但至今仍為Python獨特的風格、簡潔的設計而驚歎。

目錄  · · · · · ·第1章 程式之道 1
1.1 什麼是程式 1
1.2 運行Python 2
1.3 第一個程式 3
1.4 算術操作符 3
1.5 值和類型 4
1.6 形式語言和自然語言 5
1.7 調試 6
1.8 術語表 7
1.9 練習 8
第2章 變數、運算式和語句 9
2.1 指派陳述式 9
2.2 變數名稱 9
2.3 運算式和語句 10
2.4 指令碼模式 11
2.5 操作順序 12
2.6 字串操作 13
2.7 注釋 13
2.8 調試 14
2.9 術語表 15
2.10 練習 16
第3章 函數 17
3.1 函數調用 17
3.2 數學函數 18
3.3 組合 19
3.4 添加新函數 19
3.5 定義和使用 21
3.6 執行流程 21
3.7 形參和實參 22
3.8 變數和形參是局部的 23
3.9 棧圖 23
3.10 有傳回值函數和無傳回值函數 24
3.11 為什麼要有函數 25
3.12 調試 26
3.13 術語表 26
3.14 練習 27
第4章 案例研究:介面設計 30
4.1 turtle模組 30
4.2 簡單重複 31
4.3 練習 32
4.4 封裝 33
4.5 泛化 34
4.6 介面設計 34
4.7 重構 35
4.8 一個開發計劃 36
4.9 文檔字串 37
4.10 調試 38
4.11 術語表 38
4.12 練習 39
第5章 條件和遞迴 41
5.1 向下取整除法操作符和求模操作符 41
5.2 布林運算式 42
5.3 邏輯操作符 42
5.4 條件執行 43
5.5 選擇執行 43
5.6 條件鏈 44
5.7 嵌套條件 44
5.8 遞迴 45
5.9 遞迴函式的棧圖 46
5.10 無限遞迴 47
5.11 鍵盤輸入 47
5.12 調試 48
5.13 術語表 49
5.14 練習 50
第6章 有傳回值的函數 53
6.1 傳回值 53
6.2 漸進式開發 54
6.3 組合 56
6.4 布爾函數 57
6.5 再談遞迴 58
6.6 堅持信念 59
6.7 另一個樣本 60
6.8 檢查類型 60
6.9 調試 61
6.10 術語表 63
6.11 練習 63
第7章 迭代 65
7.1 重新賦值 65
7.2 更新變數 66
7.3 while語句 66
7.4 break語句 68
7.5 平方根 68
7.6 演算法 70
7.7 調試 70
7.8 術語表 71
7.9 練習 71
第8章 字串 73
8.1 字串是一個序列 73
8.2 len 74
8.3 使用for迴圈進行遍曆 74
8.4 字串切片 75
8.5 字串是不可變的 76
8.6 搜尋 77
8.7 迴圈和計數 77
8.8 字串方法 78
8.9 操作符in 79
8.10 字串比較 79
8.11 調試 80
8.12 術語表 82
8.13 練習 82
第9章 案例分析:文字遊戲 85
9.1 讀取單字清單 85
9.2 練習 86
9.3 搜尋 87
9.4 使用下標迴圈 88
9.5 調試 90
9.6 術語表 90
9.7 練習 91
第10章 列表 93
10.1 列表是一個序列 93
10.2 列表是可變的 94
10.3 遍曆一個列表 95
10.4 列表操作 95
10.5 列表切片 96
10.6 列表方法 96
10.7 映射、過濾和化簡 97
10.8 刪除元素 98
10.9 列表和字串 99
10.10 對象和值 100
10.11 別名 101
10.12 列表參數 102
10.13 調試 103
10.14 術語表 104
10.15 練習 105
第11章 字典 108
11.1 字典是一種映射 108
11.2 使用字典作為計數器集合合 110
11.3 迴圈和字典 111
11.4 反向尋找 111
11.5 字典和列表 112
11.6 備忘 114
11.7 全域變數 115
11.8 調試 117
11.9 術語表 118
11.10 練習 119
第12章 元組 121
12.1 元組是不可變的 121
12.2 元組賦值 122
12.3 作為傳回值的元組 123
12.4 可變長參數元組 124
12.5 列表和元組 124
12.6 字典和元組 126
12.7 序列的序列 127
12.8 調試 128
12.9 術語表 129
12.10 練習 129
第13章 案例研究:選擇資料結構 132
13.1 單詞頻率分析 132
13.2 隨機數 133
13.3 單詞長條圖 134
13.4 最常用的單詞 135
13.5 可選形參 136
13.6 字典減法 137
13.7 隨機單詞 138
13.8 馬爾可夫分析 138
13.9 資料結構 140
13.10 調試 141
13.11 術語表 142
13.12 練習 143
第14章 檔案 144
14.1 持久化 144
14.2 讀和寫 144
14.3 格式操作符 145
14.4 檔案名稱和路徑 146
14.5 捕獲異常 147
14.6 資料庫 148
14.7 封存 149
14.8 管道 150
14.9 編寫模組 151
14.10 調試 152
14.11 術語表 152
14.12 練習 153
第15章 類和對象 155
15.1 使用者定義型別 155
15.2 屬性 156
15.3 矩形 157
15.4 作為傳回值的執行個體 158
15.5 對象是可變的 159
15.6 複製 159
15.7 調試 161
15.8 術語表 161
15.9 練習 162
第16章 類和函數 163
16.1 時間 163
16.2 純函數 164
16.3 修改器 165
16.4 原型和計劃 166
16.5 調試 167
16.6 術語表 168
16.7 練習 168
第17章 類和方法 170
17.1 物件導向特性 170
17.2 列印對象 171
17.3 另一個樣本 172
17.4 一個更複雜的樣本 173
17.5 init方法 173
17.6 _ _str_ _方法 174
17.7 操作符重載 175
17.8 基於類型的分發 175
17.9 多態 177
17.10 介面和實現 177
17.11 調試 178
17.12 術語表 179
17.13 練習 179
第18章 繼承 181
18.1 卡片對象 181
18.2 類屬性 182
18.3 對比卡牌 183
18.4 牌組 184
18.5 列印牌組 185
18.6 添加、刪除、洗牌和排序 185
18.7 繼承 186
18.8 類圖 188
18.9 資料封裝 189
18.10 調試 190
18.11 術語表 191
18.12 練習 191
第19章 Python拾珍 194
19.1 條件運算式 194
19.2 列表理解 195
19.3 產生器運算式 196
19.4 any和all 197
19.5 集合 197
19.6 計數器 199
19.7 defaultdict 200
19.8 命名元組 201
19.9 收集關鍵詞參數 202
19.10 術語表 203
19.11 練習 203
第20章 調試 205
20.1 語法錯誤 205
20.2 執行階段錯誤 207
20.2.1 我的程式什麼都不做 207
20.2.2 我的程式卡死了 207
20.2.3 無限迴圈 208
20.2.4 無限遞迴 208
20.2.5 執行流程 208
20.2.6 當我運行程式,會得到一個異常 209
20.2.7 我添加了太多print語句,被輸出淹沒了 210
20.3 語義錯誤 210
20.3.1 我的程式運行不正確 211
20.3.2 我有一個巨大而複雜的運算式,而它和我預料的不同 211
20.3.3 我有一個函數,傳回值和預期不同 212
20.3.4 我真的真的卡住了,我需要協助 212
20.3.5 不行,我真的需要協助 212
第21章 演算法分析 214
21.1 增長量級 215
21.2 Python基本操作的分析 217
21.3 搜尋演算法的分析 218
21.4 散列表 219
21.5 術語表 223
譯後記 224

 

 

 

:網盤下載

 

像電腦科學家一樣思考Python (第2版)pdf

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.