Python編程做中學 Learn to Code by Solving Problems: A Python Programming Primer
[加]丹尼爾·津加羅(Daniel Zingaro)
- 出版商: 人民郵電
- 出版日期: 2022-08-01
- 定價: $479
- 售價: 8.5 折 $407
- 語言: 簡體中文
- 頁數: 232
- ISBN: 7115589399
- ISBN-13: 9787115589392
- 此書翻譯自: Learn to Code by Solving Problems: A Python Programming Primer
-
相關翻譯:
Python 程式設計與程式競賽解題技巧 (Learn to Code by Solving Problems: A Python Programming Primer) (繁中版)
下單後立即進貨 (約4週~6週)
相關主題
商品描述
本書是一本零基礎的Python編程入門書。全書介紹了Python的基本知識、條件語句、循環語句、列表、函數,並涉及到數據結構、文件讀寫、算法等基本知識,引入了編程競賽中重要的軟件運行效率的概念。本書立足各編程挑戰網站上的真題,將編程的基本思想和Python的知識點拆解成小任務,使讀者在解題的過程中逐步探索,以親自上手實踐的方式學習編程。
本書適合想要零基礎學習編程和Python的人閱讀。
作者簡介
丹尼尔·辛格罗(Daniel Zingaro)博士是多伦多大学密西沙加分校计算机科学教学流中的获奖副教授,他在主动学习方面的专长得到了国际认可。他也是《算法思维》(No Starch Press)的作者。
目錄大綱
第 1章 啟程 1
1.1 我們要做的事情 1
1.2 Python Shell 2
1.2.1 Windows 2
1.2.2 macOS 3
1.2.3 Linux 3
問題1:單詞計數 4
挑戰 4
輸入 4
輸出 4
1.3 字符串 4
1.3.1 表示字符串 5
1.3.2 字符串操作符 5
1.3.3 字符串方法 6
1.4 整數和浮點數 7
1.4.1 變量 9
1.4.2 賦值語句 9
1.4.3 改變變量的值 10
1.5 使用變量來計數單詞 11
1.6 讀輸入 11
1.7 寫輸出 12
1.8 解決問題:一個完整的Python
程序 13
1.8.1 啟動文本編輯器 13
1.8.2 Windows 13
1.8.3 macOS 13
1.8.4 Linux 13
1.8.5 程序 13
1.8.6 運行程序 14
1.8.7 提交給裁判員 14
問題2:圓錐體積 15
挑戰 15
輸入 15
輸出 15
1.9 Python中的更多數學 15
1.9.1 訪問Pi 15
1.9.2 指數 16
1.10 字符串和整數之間的轉換 16
1.11 解決問題 18
1.12 小結 19
1.13 練習 19
1.14 備註 19
第 2章 做判斷 20
問題3:獲勝球隊 20
挑戰 20
輸入 20
輸出 21
2.1 有條件執行 21
2.2 布爾類型 22
2.3 關系操作符 22
2.4 if語句 24
2.4.1 單獨的if 24
2.4.2 帶有elif的if 25
2.4.3 帶有else的if 26
2.5 解決問題 28
問題4:電話推銷員 29
挑戰 29
輸入 30
輸出 30
2.6 布爾操作符 30
2.6.1 or操作符 30
2.6.2 and操作符 31
2.6.3 not操作符 31
2.7 解決問題 32
2.8 註釋 34
2.9 輸入和輸出重定向 34
2.10 小結 35
2.11 練習 36
2.12 備註 36
第3章 重復代碼:定循環 37
問題5:三個杯子 37
挑戰 37
輸入 37
輸出 38
3.1 為什麽要循環? 38
3.2 for循環 38
3.3 嵌套 40
3.4 解決問題 42
問題6:已占用停車位 44
挑戰 44
輸入 44
輸出 44
3.5 一種新循環 44
3.6 索引 45
3.7 循環的範圍 46
3.8 範圍用於循環遍歷索引 48
3.9 解決問題 49
問題7:數據套餐 50
挑戰 50
輸入 50
輸出 50
3.10 循環讀取輸入 50
3.11 解決問題 51
3.12 小結 52
3.13 練習 53
3.14 備註 53
第4章 重復代碼:不定循環 54
問題8:老虎機 54
挑戰 54
輸入 54
輸出 55
4.1 探索一個測試用例 55
4.2 for循環的局限性 56
4.3 while循環 57
4.3.1 使用while循環 57
4.3.2 循環中的嵌套循環 60
4.3.3 添加布爾操作符 61
4.4 解決問題 61
4.5 模操作符 64
4.6 F-字符串 66
問題9:歌曲播放列表 67
挑戰 67
輸入 67
輸出 68
4.7 字符串切片 68
4.8 解決問題 70
問題10:秘密句子 71
挑戰 72
輸入 72
輸出 72
4.9 for循環的另一個局限性 72
4.10 while循環遍歷索引 73
4.11 解決問題 75
4.12 break和continue 75
4.12.1 break 76
4.12.2 continue 77
4.13 小結 78
4.14 練習 78
4.15 備註 78
第5章 用列表來組織值 79
問題11:村莊鄰域 79
挑戰 79
輸入 80
輸出 80
5.1 為什麽是列表? 80
5.2 列表 81
5.3 列表的可變性 83
5.4 學習有關方法 85
5.5 列表方法 86
5.5.1 添加到一個列表 87
5.5.2 對列表排序 88
5.5.3 從列表中移除數值 88
5.6 解決問題 89
5.7 避免代碼重復:還有兩個解決
方案 91
5.7.1 使用一個巨大的大小 91
5.7.2 建立保存大小的列表 92
問題12:學校旅行 93
挑戰 93
輸入 93
輸出 93
隱藏的麻煩 93
5.8 分割字符串和連接列表 94
5.8.1 將字符串分割成列表 94
5.8.2 將列表連接成字符串 94
5.9 改變列表值 95
5.10 解決大部分的問題 96
5.10.1 探索一個測試用例 96
5.10.2 代碼 97
5.11 如何處理隱藏的麻煩 98
5.11.1 探索一個測試用例 98
5.11.2 更多列表操作 99
5.11.3 尋找最大值的索引 99
5.11.4 解決問題 100
問題13:麵包房獎金 100
挑戰 101
輸入 101
輸出 101
5.12 表示一個表格 101
5.12.1 探索一個測試用例 101
5.12.2 嵌套列表 102
5.13 解決問題 104
5.14 小結 105
5.15 練習 106
5.16 備註 106
第6章 用函數來設計程序 107
問題14:紙牌游戲 107
挑戰 107
輸入 108
輸出 108
6.1 探索一個測試用例 108
6.2 定義和調用函數 109
6.2.1 沒有實參的函數 110
6.2.2 帶實參的函數 110
6.2.3 關鍵字實參 112
6.2.4 局部變量 112
6.2.5 可變的形參 113
6.2.6 返回值 114
6.3 函數文檔 116
6.4 解決問題 117
問題15:可動人偶 119
挑戰 120
輸入 120
輸出 120
6.5 表示盒子 120
6.6 自頂向下的設計 121
6.6.1 進行自頂向下的設計 121
6.6.2 最高層 121
6.6.3 任務1:讀輸入 123
6.6.4 任務2:檢查所有盒子是否
都沒問題 124
6.6.5 任務3:獲得只有左右高度的
新盒子列表 126
6.6.6 任務4:對盒子進行排序 127
6.6.7 任務5:判斷盒子是否
整理好 127
6.6.8 整合在一起 129
6.7 小結 131
6.8 練習 132
6.9 備註 132
第7章 讀寫文件 133
問題16:文章格式化 133
挑戰 133
輸入 133
輸出 134
7.1 操作文件 134
7.1.1 打開文件 134
7.1.2 讀取文件 135
7.1.3 寫入文件 138
7.1.4 關閉文件 139
7.2 解決問題 139
7.2.1 探索一個測試用例 139
7.2.2 代碼 140
問題17:農場播種 141
挑戰 142
輸入 142
輸出 142
7.3 探索一個測試用例 142
7.4 自頂向下的設計 145
7.4.1 頂層 145
7.4.2 任務1:讀取輸入 146
7.4.3 任務2:識別奶牛 147
7.4.4 任務3:排除草種 149
7.4.5 任務4:選擇數字最小的
草種 150
7.4.6 任務5:寫輸出 151
7.5 小結 156
7.6 練習 156
7.7 備註 156
第8章 用集合和字典來組織值 157
問題18:電子郵件地址 157
挑戰 157
輸入 158
輸出 158
8.1 使用列表 158
8.1.1 清理一個電子郵件地址 158
8.1.2 主程序 160
8.2 搜索列表的效率 161
8.3 集合 162
8.4 集合方法 164
8.5 搜索集合的效率 165
8.6 解決問題 166
問題19:常見單詞 167
挑戰 167
輸入 167
輸出 168
8.7 探索一個測試用例 168
8.8 字典 169
8.9 索引字典 171
8.10 循環遍歷字典 173
8.11 倒置字典 175
8.12 解決問題 177
8.12.1 代碼 177
8.12.2 添加後綴 178
8.12.3 尋找第k個最常見的
單詞 179
8.12.4 主程序 179
問題20:城市和州 180
挑戰 180
輸入 180
輸出 180
8.13 探索一個測試用例 180
8.14 解決問題 182
8.15 小結 183
8.16 練習 184
8.17 備註 184
第9章 用完全搜索設計算法 185
問題21:救生員 185
挑戰 185
輸入 186
輸出 186
9.1 探索一個測試用例 186
9.2 解決問題 187
9.2.1 解雇一名救生員 187
9.2.2 主程序 188
9.2.3 程序的效率 189
問題22:滑雪場 190
挑戰 190
輸入 191
輸出 191
9.3 探索一個測試用例 191
9.4 解決問題 192
9.4.1 確定一個範圍的成本 192
9.4.2 主程序 193
問題23:奶牛棒球 195
挑戰 195
輸入 195
輸出 195
9.5 使用三個嵌套循環 195
9.5.1 代碼 195
9.5.2 程序的效率 198
9.6 先排序 198
9.6.1 代碼 198
9.6.2 程序的效率 200
9.7 Python模塊 201
9.8 bisect模塊 202
9.9 解決問題 204
9.10 小結 206
9.11 練習 206
9.12 備註 206
第 10章 大O和程序效率 208
10.1 計時的問題 208
10.2 大O 210
10.2.1 常數時間 210
10.2.2 線性時間 211
10.2.3 平方時間 214
10.2.4 立方時間 216
10.2.5 多變量 217
10.2.6 對數時間 218
10.2.7 n log n時間 219
10.2.8 處理函數調用 220
10.2.9 小結 222
問題24:最長圍巾 222
挑戰 222
輸入 223
輸出 223
10.3 探索一個測試用例 223
10.4 算法1 223
10.5 算法2 224
問題25:絲帶染色 226
挑戰 226
輸入 226
輸出 227
10.6 探索一個測試用例 227
10.7 解決問題 227
10.8 小結 230
10.9 練習 230
10.10 備註 230
後記 231
附錄A 問題鳴謝 232