Python極客項目編程(第2版) Python Playground, 2nd Edition: Geeky Projects for the Curious Programmer
[美] 馬赫什·文基塔查拉姆(Mahesh Venkitachalam)
- 出版商: 人民郵電
- 出版日期: 2024-09-01
- 售價: $419
- 貴賓價: 9.5 折 $398
- 語言: 簡體中文
- 頁數: 316
- 裝訂: 平裝
- ISBN: 7115642362
- ISBN-13: 9787115642363
- 此書翻譯自: Python Playground, 2nd Edition: Geeky Projects for the Curious Programmer
立即出貨 (庫存 < 3)
買這商品的人也買了...
-
$400$316 -
$450$356 -
$294$279 -
$600$540 -
$450$351 -
$600$468 -
$580$493 -
$780$663 -
$980$647 -
$450$351 -
$500$390 -
$550$429 -
$400$312 -
$602嵌入式 C語言自我修養 — 從芯片、編譯器到操作系統
-
$720$562 -
$380$300 -
$680$537 -
$600$468 -
$509逆向分析實戰, 2/e
-
$650$507 -
$454Wi-Fi 7 開發參考:技術原理、標準和應用
-
$720$562 -
$528$502 -
$594$564 -
$662Hello 算法
相關主題
商品描述
Python是一種解釋型、面向對象、動態數據類型的高級程序設計語言,通過Python編程能夠解決現實生活中的很多問題。本書並不介紹Python語言的基礎知識,而是通過一系列有趣的項目,展示如何用Python解決各種實際問題,以及如何使用一些流行的Python庫。
本書共15章,每章講解一個有趣的Python項目,這些項目可以分成5個部分:第一部分是熱身,包括科赫雪花、繁花曲線;第二部分是模擬生命,包括康威生命游戲、使用Karplus-Strong算法生成泛音、群體行為模擬;第三部分是好玩的圖形,包括文本圖形、照片馬賽克、裸眼立體畫;第四部分是走進三維,包括理解OpenGL、圓環面上的康威生命游戲、體渲染;第五部分是玩轉硬件,包括在樹莓派Pico上實現Karplus-Strong算法、樹莓派激光音樂秀、物聯網花園、樹莓派音頻機器學習。此外,本書還通過附錄介紹如何安裝Python和設置樹莓派。
本書適合已經瞭解了基本的Python語法和編程知識、想要嘗試和探索通過Python編程解決實際問題的讀者閱讀,也可作為Python初學者練習項目開發的參考用書。
作者簡介
马赫什·文基塔查拉姆(Mahesh Venkitachalam)是一名计算机图形学和嵌入式系统顾问,拥有二十余年从业经验。他是Electronut Labs的创始人,该公司以开发充满创意的开源硬件著称。他经常撰写有关编程和电子技术的博客。
目錄大綱
第 一部分 熱身
第 1 章 科赫雪花 2
1.1 工作原理 2
1.1.1 使用遞歸 2
1.1.2 構建科赫雪花 3
1.1.3 使用海龜繪圖法繪圖 6
1.2 需求 8
1.3 代碼 8
1.3.1 計算點的坐標 8
1.3.2 遞歸 8
1.3.3 繪製片段 9
1.3.4 編寫函數 main() 9
1.4 運行程序 10
1.5 小結 10
1.6 實驗 11
1.7 完整代碼 11
第 2 章 繁花曲線 13
2.1 工作原理 13
2.1.1 理解參數方程 13
2.1.2 使用海龜繪圖法繪制曲線 15
2.2 需求 16
2.3 代碼 17
2.3.1 繪制繁花曲線 17
2.3.2 協調動畫 20
2.3.3 保存曲線 22
2.3.4 分析命令行參數及初始化 23
2.4 運行程序 24
2.5 小結 25
2.6 實驗 26
2.7 完整代碼 26
第二部分 模擬生命
第 3 章 康威生命游戲 32
3.1 工作原理 32
3.2 需求 34
3.3 代碼 34
3.3.1 顯示網格 34
3.3.2 設置初始狀態 35
3.3.3 實現邊界條件 36
3.3.4 實現規則 37
3.3.5 向程序傳遞命令行參數 37
3.3.6 初始化 38
3.4 運行程序 38
3.5 小結 40
3.6 實驗 40
3.7 完整代碼 40
第 4 章 使用 Karplus-Strong 算法生成泛音 43
4.1 工作原理 442
4.1.1 模擬 45
4.1.2 WAV 文件格式 46
4.1.3 小調五聲音階 47
4.2 需求 48
4.3 代碼 48
4.3.1 使用 deque 實現環形緩沖區 48
4.3.2 實現 Karplus-Strong算法 48
4.3.3 寫入 WAV 文件 50
4.3.4 使用 PyAudio 播放 WAV文件 50
4.3.5 創建音符及分析參數 52
4.4 運行彈撥樂器模擬程序 53
4.5 小結 54
4.6 實驗 54
4.7 完整代碼 54
第 5 章 群體行為模擬 58
5.1 工作原理 58
5.2 需求 59
5.3 代碼 59
5.3.1 初始化模擬 59
5.3.2 設置邊界條件 60
5.3.3 繪制個體 62
5.3.4 應用群體行為規則 63
5.3.5 影響模擬 67
5.3.6 分步模擬 68
5.3.7 分析參數及實例化Boids 類 69
5.4 運行群體行為模擬程序 69
5.5 小結 69
5.6 實驗 70
5.7 完整代碼 70
第三部分 好玩的圖形
第 6 章 文本圖形 74
6.1 工作原理 75
6.2 需求 76
6.3 代碼 76
6.3.1 定義灰度標尺和網格 76
6.3.2 計算平均亮度 77
6.3.3 根據圖像生成 ASCII 內容 77
6.3.4 定義命令行參數 78
6.3.5 將表示文本圖形的字符串寫入文本文件 79
6.4 運行文本圖形生成程序 79
6.5 小結 80
6.6 實驗 80
6.7 完整代碼 80
第 7 章 照片馬賽克 83
7.1 工作原理 83
7.1.1 分割目標圖像 84
7.1.2 計算平均 RGB 值 84
7.1.3 匹配圖像 85
7.2 需求 87
7.3 代碼 87
7.3.1 讀入輸入圖像 87
7.3.2 計算圖像的平均 RGB 值 88
7.3.3 將目標圖像分割為網格 88
7.3.4 查找與分片最匹配的圖像 89
7.3.5 創建圖像網格 90
7.3.6 創建照片馬賽克 91
7.3.7 編寫函數 main() 93
7.4 運行照片馬賽克生成程序 94
7.5 小結 95
7.6 實驗 95
7.7 完整代碼 95
第 8 章 裸眼立體畫 101
8.1 工作原理 102
8.1.1 感知裸眼立體畫中的深度 102
8.1.2 使用深度圖 103
8.1.3 平移像素 105
8.2 需求 106
8.3 代碼 106
8.3.1 創建由隨機圓組成的分片 106
8.3.2 重復分片 107
8.3.3 創建裸眼立體畫 108
8.3.4 提供命令行參數 109
8.4 運行裸眼立體畫生成程序 109
8.5 小結 110
8.6 實驗 111
8.7 完整代碼 111
第四部分 走進三維
第 9 章 理解 OpenGL 116
9.1 OpenGL 的工作原理 117
9.1.1 圖元 117
9.1.2 三維變換 118
9.1.3 著色器 120
9.1.4 頂點緩存 121
9.1.5 紋理映射 121
9.1.6 OpenGL 上下文 122
9.2 需求 122
9.3 代碼 122
9.3.1 RenderWindow 類 123
9.3.2 Scene 類 125
9.3.3 輔助函數 129
9.4 運行 OpenGL 應用程序 130
9.5 小結 130
9.6 實驗 130
9.7 完整代碼 131
第 10 章 圓環面上的康威生命游戲 136
10.1 工作原理 136
10.1.1 計算頂點 136
10.1.2 計算光照法線 138
10.1.3 渲染 139
10.1.4 給三角形帶著色 140
10.1.5 控制相機 140
10.1.6 將網格映射到圓環面 141
10.2 需求 142
10.3 代碼 142
10.3.1 渲染圓環面 142
10.3.2 實現康威生命游戲模擬 148
10.3.3 創建相機 149
10.3.4 整合代碼 151
10.4 運行三維版康威生命游戲模擬 153
10.5 小結 154
10.6 實驗 155
10.7 完整的圓環面渲染代碼 155
10.8 完整的康威生命游戲模擬代碼 160
10.9 完整的相機創建代碼 161
10.10 RenderWindow 類的完整代碼 162
第 11 章 體渲染 166
11.1 工作原理 166
11.1.1 數據格式 167
11.1.2 生成光線 167
11.1.3 OpenGL 窗口 169
11.2 需求 169
11.3 代碼 169
11.3.1 生成三維紋理 170
11.3.2 生成光線 171
11.3.3 實現體光線投射算法 176
11.3.4 顯示二維切片 180
11.3.5 整合代碼 183
11.4 運行程序 185
11.5 小結 185
11.6 實驗 185
11.7 完整的三維紋理生成代碼 186
11.8 完整的光線生成代碼 187
11.9 完整的體光線投射算法代碼 192
11.10 顯示二維切片的完整代碼 195
11.11 完整的主文件代碼 198
第五部分 玩轉硬件
第 12 章 在樹莓派 Pico 上實現Karplus-Strong 算法 202
12.1 工作原理 203
12.1.1 輸入和輸出 203
12.1.2 I2S 協議 204
12.2 需求 205
12.2.1 組裝硬件 205
12.2.2 安裝 MicroPython 207
12.3 代碼 207
12.3.1 設置 207
12.3.2 生成音符 208
12.3.3 播放音頻 210
12.3.4 編寫函數 main() 211
12.4 運行程序 212
12.5 小結 213
12.6 實驗 213
12.7 完整代碼 214
第 13 章 樹莓派激光音樂秀 218
13.1 工作原理 218
13.1.1 使用激光生成圖案 219
13.1.2 使用快速傅里葉變換分析音頻 222
13.2 需求 224
13.2.1 在樹莓派上安裝系統和軟件 224
13.2.2 搭建激光秀裝置 225
13.2.3 連接硬件 226
13.3 代碼 228
13.3.1 設置 228
13.3.2 控制硬件 229
13.3.3 處理音頻 230
13.3.4 測試電機 233
13.3.5 整合代碼 234
13.4 運行激光音樂秀程序 235
13.5 小結 236
13.6 實驗 236
13.7 完整代碼 237
第 14 章 物聯網花園 242
14.1 工作原理 242
14.1.1 低功耗藍牙 243
14.1.2 Web 框架 Bottle 245
14.1.3 SQLite 數據庫 246
14.2 需求 247
14.2.1 在樹莓派上安裝系統和軟件 247
14.2.2 安裝 CircuitPython 247
14.2.3 設置 IFTTT 服務 248
14.3 代碼 249
14.3.1 CircuitPython 代碼 249
14.3.2 BLE 掃描器代碼 252
14.3.3 Web 服務器代碼 258
14.3.4 主程序文件 264
14.4 運行物聯網花園程序 266
14.5 小結 267
14.6 實驗 267
14.7 完整的 CircuitPython 代碼 268
14.8 完整的 BLE 掃描器代碼 270
14.9 完整的 Python Web 服務器代碼 273
14.10 完整的主程序代碼 275
第 15 章 樹莓派音頻機器學習 277
15.1 機器學習概述 277
15.2 工作原理 278
15.2.1 聲譜圖 280
15.2.2 在樹莓派上推斷 281
15.3 需求 283
15.4 代碼 284
15.4.1 在 Colab 中訓練模型 284
15.4.2 在樹莓派上使用模型 293
15.5 運行語音識別系統 301
15.6 小結 302
15.7 實驗 303
15.8 完整代碼 303
附錄 A 安裝 Python 309
A.1 獲取本書項目的源代碼 309
A.2 安裝 Python 和 Python 模塊 309
A.2.1 Windows 309
A.2.2 macOS 310
A.2.3 Linux 311
附錄 B 設置樹莓派 312
B.1 安裝操作系統 312
B.2 測試連接 314
B.3 使用 SSH 登錄樹莓派 315
B.4 安裝 Python 模塊 316
B.5 遠程使用 Visual Studio Code 316