趣味微項目,輕松學Python Tiny Python Projects
[美] 肯·尤內-克拉克(Ken Youens-Clark) 著 楊欣 韓軼男 於妙妙 譯
- 出版商: 清華大學
- 出版日期: 2022-11-01
- 定價: $588
- 售價: 8.5 折 $500
- 語言: 簡體中文
- ISBN: 7302617341
- ISBN-13: 9787302617341
-
相關分類:
Python、程式語言
- 此書翻譯自: Tiny Python Projects
立即出貨 (庫存 < 4)
買這商品的人也買了...
-
$359$341 -
$520$406 -
$480$379 -
$600$468 -
$320$288 -
$356零起步玩轉 Mind + 創客教程 — 基於 micro:bit 開發板
-
$620$484 -
$620$484 -
$680$537 -
$660$515 -
$260$203 -
$520$406 -
$653Python超能學習手冊
-
$250$198 -
$630$498 -
$490$368 -
$600$468 -
$650$507 -
$820$648 -
$653ReactJS 實踐入門
-
$356Python數據科學實戰
-
$403碼上行動:用 ChatGPT 學會 Python 編程巧用 ChatGPT 快速搞定 Python
-
$602大語言模型應用指南:以ChatGPT為起點,從入門到精通的AI實踐教程(全彩)
-
$469OpenAI API接口應用實戰
-
$862基礎統計學, 14/e (雙色)
相關主題
商品描述
主要內容 ● 編寫Python命令行程序 ● 處理Python數據結構 ● 使用和控制隨機性 ● 為程序和函數編寫並運行測試 ● 下載每個項目的全套測試集
目錄大綱
目 錄
第1章 如何編寫和測試Python程序 1
1.1 創建你的第一個程序 1
1.2 註釋行 2
1.3 測試程序 2
1.4 添加#!(釋伴)行 4
1.5 可執行的程序 5
1.6 理解$PATH 6
1.7 添加參數和幫助 7
1.8 可選實參 9
1.9 運行測試 11
1.10 添加main()函數 11
1.11 添加get_args()函數 12
1.12 測試hello.py 14
1.13 用new.py開始新程序 15
1.14 使用template.py替代new.py 17
1.15 小結 18
第2章 瞭望哨:使用字符串 19
2.1 啟程 20
2.1.1 如何使用測試 20
2.1.2 用new.py創建程序 21
2.1.3 編寫、測試、重復 21
2.1.4 定義實參 22
2.1.5 串連字符串 24
2.1.6 變量類型 25
2.1.7 獲取字符串的正確部分 25
2.1.8 在REPL中找到幫助 26
2.1.9 字符串方法 27
2.1.10 字符串比較 28
2.1.11 條件分支 29
2.1.12 字符串格式化 30
2.1.13 編寫程序 31
2.2 解決方案 31
2.3 討論 32
2.3.1 用get_args()定義實參 32
2.3.2 關於main() 32
2.3.3 給單詞的第一個字符分類 33
2.3.4 打印結果 34
2.3.5 運行測試集 34
2.4 更進一步 34
2.5 小結 35
第3章 去野餐:使用列表 37
3.1 開始編寫程序 38
3.2 編寫picnic.py程序 39
3.3 介紹列表 41
3.3.1 向列表添加一個元素 41
3.3.2 向列表添加多個元素 42
3.3.3 對列表進行索引 44
3.3.4 對列表進行切片化 44
3.3.5 在列表中查找元素 45
3.3.6 從列表中刪除元素 46
3.3.7 對列表進行排序和反轉 47
3.3.8 變更列表 49
3.3.9 連接列表 50
3.4 用if/elif/else進行條件分支 50
3.5 解決方案 51
3.6 討論 52
3.6.1 定義實參 52
3.6.2 對條目進行賦值和排序 53
3.6.3 對條目進行格式化 53
3.6.4 打印條目 54
3.7 更進一步 54
3.8 小結 54
第4章 跳過5:使用字典 57
4.1 字典 58
4.1.1 創建字典 58
4.1.2 訪問字典值 60
4.1.3 其他字典方法 61
4.2 編寫jump.py 62
4.3 解決方案 64
4.4 討論 64
4.4.1 定義參數 65
4.4.2 使用dict進行編碼 65
4.4.3 處理序列中條目的多種方法 65
4.4.4 不使用str.replace() 70
4.5 更進一步 70
4.6 小結 70
第5章 吼叫信:使用文件和STDOUT 73
5.1 讀取文件 74
5.2 寫入文件 77
5.3 編寫howler.py 79
5.4 解決方案 80
5.5 討論 81
5.5.1 定義實參 82
5.5.2 從文件或命令行讀取輸入 82
5.5.3 選擇輸出文件句柄 83
5.5.4 打印輸出 84
5.5.5 低內存版本 84
5.6 更進一步 86
5.7 小結 86
第6章 數單詞:讀取文件和STDIN,迭代列表,格式化字符串 87
6.1 編寫wc.py 88
6.1.1 定義文件輸入 89
6.1.2 迭代列表 90
6.1.3 你在數什麽 90
6.1.4 格式化結果 92
6.2 解決方案 93
6.3 討論 94
6.3.1 定義實參 94
6.3.2 使用for循環讀入一個文件 94
6.4 更進一步 96
6.5 小結 96
第7章 Gashlycrumb:在字典中查找條目 97
7.1 編寫 gashlycrumb.py 98
7.2 解決方案 101
7.3 討論 102
7.3.1 處理實參 102
7.3.2 讀取輸入文件 102
7.3.3 使用字典推導式 103
7.3.4 lookup字典 104
7.4 更進一步 104
7.5 小結 105
第8章 蘋果和香蕉:找到並替換 107
8.1 更改字符串 109
8.1.1 使用str.replace()方法 109
8.1.2 使用str.translate() 110
8.1.3 變更字符串的其他方法 110
8.2 解決方案 111
8.3 討論 112
8.3.1 定義參數 112
8.3.2 替換元音的8種方法 113
8.4 用測試進行重構 125
8.5 更進一步 126
8.6 小結 126
第9章 撥號詛咒:用單詞列表生成隨機嘲諷話 127
9.1 編寫abuse.py 128
9.1.1 驗證實參 129
9.1.2 導入隨機模塊並生成種子 131
9.1.3 定義形容詞和名詞 131
9.1.4 採集隨機樣本並選擇 132
9.1.5 對輸出進行格式化 133
9.2 解決方案 134
9.3 討論 135
9.3.1 定義實參 135
9.3.2 使用parser.error() 136
9.3.3 程序退出值和STDERR 136
9.3.4 用random.seed()控制隨機性 137
9.3.5 用range()進行迭代並使用拋棄變量 137
9.3.6 構建嘲諷語句 138
9.4 更進一步 139
9.5 小結 139
第10章 電話:隨機變更字符串 141
10.1 編寫telephone.py 142
10.1.1 計算變更的數量 144
10.1.2 變更空間 144
10.1.3 選擇要變更的字符 145
10.1.4 變更字符串 147
10.1.5 編寫程序 148
10.2 解決方案 148
10.3 討論 149
10.3.1 變更字符串 150
10.3.2 使用list代替str 151
10.4 更進一步 152
10.5 小結 152
第11章 瓶裝啤酒之歌:
編寫和測試函數 153
11.1 編寫bottles.py 154
11.1.1 反向計數 154
11.1.2 編寫函數 155
11.1.3 為verse()編寫測試 156
11.1.4 使用verse()函數 160
11.2 解決方案 160
11.3 討論 162
11.3.1 反向計數 162
11.3.2 測試驅動開發 162
11.3.3 verse()函數 163
11.3.4 遍歷歌曲小節 164
11.3.5 1500個其他解決方案 166
11.4 更進一步 166
11.5 小結 167
第12章 贖金條:隨機大寫文本 169
12.1 編寫ransom.py 170
12.1.1 修改文本 171
12.1.2 擲硬幣 171
12.1.3 創建新字符串 172
12.2 解決方案 172
12.3 討論 174
12.3.1 遍歷序列中的元素 174
12.3.2 編寫函數來選擇字母 175
12.3.3 編寫list.append()的另一種方法 175
12.3.4 使用str代替list 176
12.3.5 使用列表解析式 176
12.3.6 使用map()函數 176
12.4 方法比較 177
12.5 更進一步 178
12.6 小結 178
第13章 聖誕節的十二天:算法設計 179
13.1 編寫twelve_days.py 180
13.1.1 計數 181
13.1.2 創建序數值 182
13.1.3 製作小節 183
13.1.4 使用verse()函數 185
13.1.5 打印 186
13.1.6 開始編程 186
13.2 解決方案 186
13.3 討論 188
13.3.1 製作一個小節 188
13.3.2 生成小節 191
13.3.3 打印小節 192
13.4 更進一步 193
13.5 小結 193
第14章 押韻機:使用正則表達式創建押韻單詞 195
14.1 編寫rhymer.py 197
14.1.1 分解單詞 198
14.1.2 使用正則表達式 198
14.1.3 使用捕獲組 201
14.1.4 真實性 205
14.1.5 創建輸出 206
14.2 解決方案 206
14.3 討論 208
14.3.1 取單詞詞乾 208
14.3.2 對正則表達式進行格式化和註釋 210
14.3.3 在程序之外使用 stemmer()函數 211
14.3.4 創建押韻字符串 212
14.3.5 不帶正則表達式的stemmer() 213
14.4 更進一步 214
14.5 小結 214
第15章 肯德基修士:關於正則表達式的更多故事 215
15.1 編寫friar.py 217
15.1.1 使用正則表達式拆解文本 218
15.1.2 簡寫類 218
15.1.3 否定簡寫類 220
15.1.4 使用帶有已捕獲的正則表達式的re.split() 221
15.1.5 編寫fry()函數 223
15.1.6 使用fry()函數 227
15.2 解決方案 228
15.3 討論 229
15.3.1 手動編寫fry()函數 230
15.3.2 編寫帶有正則表達式的fry()函數 231
15.4 更進一步 232
15.5 小結 232
第16章 擾碼器:隨機重排單詞中部 233
16.1 編寫scrambler.py 234
16.1.1 把文本分解成行和單詞 235
16.1.2 捕獲組、非捕獲組和可選組 236
16.1.3 編譯正則表達式 236
16.1.4 對一個單詞進行擾碼 237
16.1.5 對所有單詞進行擾碼 239
16.2 解決方案 239
16.3 討論 241
16.3.1 處理文本 241
16.3.2 對單詞進行擾碼 243
16.4 更進一步 243
16.5 小結 244
第17章 瘋狂填詞:使用正則表達式 245
17.1 編寫mad.py 246
17.1.1 使用正則表達式找到尖括號 247
17.1.2 停止並打印錯誤 250
17.1.3 獲取值 251
17.1.4 替換文本 252
17.2 解決方案 252
17.3 討論 253
17.3.1 用正則表達式進行替換 253
17.3.2 不用正則表達式找到占位符 254
17.4 更進一步 256
17.5 小結 256
第18章 希伯來數:使用ASCII值對文本進行數字編碼 257
18.1 編寫gematria.py 258
18.1.1 清潔單詞 259
18.1.2 序數字符值和範圍 260
18.1.3 求和與歸約 262
18.1.4 使用functools.reduce 263
18.1.5 對單詞進行編碼 264
18.1.6 拆解文本 265
18.2 解決方案 265
18.3 討論 266
18.3.1 編寫word2num() 267
18.3.2 排序 268
18.3.3 測試 270
18.4 更進一步 270
18.5 小結 270
第19章 每日健身:解析CSV文件,創建文本表輸出 271
19.1 編寫wod.py 272
19.1.1 讀取帶分隔符的文本文件 272
19.1.2 手動讀取CSV文件 274
19.1.3 用csv模塊進行解析 277
19.1.4 創建讀取CSV文件的函數 278
19.1.5 選擇健身項目 279
19.1.6 格式化輸出 281
19.1.7 處理無效數據 281
19.1.8 編程時間 282
19.2 解決方案 282
19.3 討論 284
19.3.1 讀取CSV文件 284
19.3.2 潛在的運行錯誤 285
19.3.3 使用pandas.read_csv()解析文件 286
19.3.4 對表進行格式化 287
19.4 更進一步 289
19.5 小結 289
第20章 密碼強度:生成安全且容易記憶的密碼 291
20.1 編寫password.py 293
20.1.1 創建唯一的單詞列表 295
20.1.2 清潔文本 296
20.1.3 使用集合 298
20.1.4 對單詞進行過濾 298
20.1.5 將單詞首字母大寫 300
20.1.6 採樣和製作密碼 300
20.1.7 l33t-ify 300
20.1.8 整體運行 301
20.2 解決方案 302
20.3 討論 304
20.3.1 清潔文本 304
20.3.2 ransom()函數 305
20.3.3 l33t()函數 305
20.3.4 處理文件 306
20.3.5 採樣和創建密碼 307
20.4 更進一步 308
20.5 小結 308
第21章 井字棋:探索狀態 309
21.1 編寫tictactoe.py 310
21.1.1 驗證用戶輸入 312
21.1.2 更改棋盤 313
21.1.3 打印棋盤 313
21.1.4 確定贏家 314
21.2 解決方案 315
21.2.1 驗證實參和變更棋盤 317
21.2.2 對棋盤進行格式化 320
21.2.3 找到贏家 321
21.3 更進一步 322
21.4 小結 322
第22章 井字棋歸來:帶有類型提示的交互式版本 323
22.1 編寫itictactoe.py 323
22.1.1 元組對話 325
22.1.2 具名元組 326
22.1.3 添加類型提示 328
22.1.4 用Mypy進行類型驗證 329
22.1.5 更新不可變的結構 330
22.1.6 向函數定義添加類型提示 331
22.2 解決方案 332
22.2.1 使用TypedDict的版本 334
22.2.2 思考狀態 336
22.3 更進一步 336
22.4 小結 336
後記 337
附錄 使用argparse 339