Python極客實驗室 |程式設計師的奇想計畫 第二版

    用15個別出心裁的專案重拾程式設計的樂趣!運用numpy、matplotlib、Pillow等程式庫,寫出生成藝術、音樂、真實世界模擬與硬體互動程式,跳出基礎教學窠臼,激發你的好奇心與極客魂。

    收集中
    US$21.20

    內容簡介


    來自各界程式設計師與媒體的熱烈好評
    玩到停不下來的極客實驗報告出爐

    「每位Python程式設計師的藏書都應該包含這本書!」
    —Full Circle Magazine

    「如果你想熟練地運用Python做一些巧妙的事情,這本書就是最好的專案選集了,你無法找到比這更實用的說明來了解這個語言的運作方式。」
    —Network World

    「《Python極客實驗室》的目標讀者是希望進一步提升Python技能和知識的程式設計師。這本書在解釋所有相關細節方面做得很好,確保讀者能清楚地理解正在發生的事情。」
    —InfoQ

    「這本書擁有絕佳的專案選集,適合對科學感興趣的程式設計師、對程式設計感興趣的科學愛好者,以及介於兩者之間的每一個人。」
    —Al Sweigart,《Python自動化的樂趣》的作者

    「這是那種難得的程式設計書籍,讀起來很有趣,同時適合中級或進階的Python程式設計師。我認為即使是新手也應該試一試……這本書從頭到尾都很令人享受。」
    —Karthikeyan Chellappa, Goodreads書評

    「本書充滿娛樂性和有趣的想法……一點也不像典型的程式設計書籍。這本書專為尋求樂趣的程式設計愛好者而寫。千萬不要錯過!」
    —F. Howard, Amazon書評

    ----------------------------------------------------------

    ✨ 重拾程式設計的樂趣,開啟你的Python奇想實驗 ‍♂️

    透過《Python極客實驗室》別出心裁的15個專案,將程式碼化為實體創作並駕馭Python的威能,拓展你的程式設計視野、激發好奇心,並提升程式設計技能。

    這本書會帶你跳出程式基礎教育的窠臼,引導你運用Python搭配諸如numpy、matplotlib和 Pillow等常見程式庫,編寫生成藝術作品、音樂、模擬真實世界現象並與硬體互動的程式。

    我們為這本書新增了五個全新專案:
    ✔繪製碎形(fractals)
    ✔將Conway的Game of Life帶入三維空間
    ✔並使用Raspberry Pi和Python製作樂器
    ✔物聯網(IoT)花園監視器
    ✔以機器學習驅動的語音辨識系統

    完成本書專案後,你將能:
    運用參數方程式和turtle模組,雕琢出類似萬花尺(Spirograph)的精巧設計。
    合成撥弦聲,創造屬於你的電子音樂。
    將影像轉化為ASCII藝術、相片拼貼,以及令人驚豔的立體圖。
    構築富有趣味性的細胞自動機(cellular automata)和模擬鳥類群動行為。
    探索3D繪圖領域,從基本的圖形描繪到MRI掃描資料的視覺化。
    ⚡ 利用Raspberry Pi打造隨音樂舞動閃爍的雷射光影秀。

    無論你是經驗老道的開發者,還是渴望親手實驗的初學者,都能在《Python極客實驗室》中找到讓程式設計重新變得好玩的理由。

    作者介紹


    關於作者
    Mahesh Venkitachalam 是一位擁有20多年經驗的電腦圖學和嵌入式系統顧問,同時也是以發展創新開源硬體聞名的公司 Electronut Labs 的創辦人。他有一個關於程式設計和電子產品的部落格 https://electronut.in。

    關於技術審閱者
    Eric Mortenson擁有 University of Wisconsin–Madison的數學學士和博士學位。他曾在Pennsylvania State University、University of Queensland以及Max Planck Institute for Mathematics從事研究和教學工作。他目前是St. Petersburg State University的數學和電腦科學副教授。

    Xander Soldaat曾是 LEGO MINDSTORMS 的 MINDSTORMS Community Partner。在成為全職軟體開發人員之前,他曾是IT基礎設施架構師和工程師,擁有18年的相關工作經驗。最近,他又回到了他的Linux根源,在Red Hat擔任OpenShift Cloud Success Architect。業餘時間,他喜歡擺弄機器人、3D列印和自製的復古電腦。

    目錄


    致謝
    簡介
    本書適合哪些人閱讀?
    本書涵蓋些什麼?
    第二版有哪些新內容?
    為何選擇Python?
    本書中的程式碼


    【PARTI 暖身】

    Chapter01 Koch雪花
    運作方式
    需求
    程式碼
    執行雪花程式碼
    總結
    實驗!

    Chapter02 萬花尺
    運作方式
    需求
    程式碼
    執行萬花尺動畫
    總結
    實驗!
    完整程式碼

    【PARTII 模擬生命】

    Chapter03 Conway的生命遊戲
    運作方式
    需求
    程式碼
    執行生命遊戲的模擬
    總結
    實驗!
    完整程式碼

    Chapter04 使用Karplus-Strong演算法的泛音
    運作方式
    需求
    程式碼
    執行撥絃模擬
    總結
    實驗!
    完整程式碼

    Chapter05 成群的仿鳥(Boids)
    運作方式
    需求
    程式碼
    執行Boids模擬
    總結
    實驗!
    完整程式碼

    【PARTIII 操縱影像的樂趣】

    Chapter06 ASCII藝術
    運作方式
    需求
    程式碼
    執行ASCII藝術產生器
    總結
    實驗!
    完整程式碼

    Chapter07 相片拼貼
    運作方式
    需求
    程式碼
    執行相片拼貼產生器
    總結
    實驗!
    完整程式碼

    Chapter08 立體圖
    運作方式
    需求
    程式碼
    執行立體圖產生器
    總結
    實驗!
    完整程式碼


    【PARTIV 進入3D世界】

    Chapter09 了解OpenGL
    OpenGL的運作方式
    需求
    程式碼
    執行OpenGL應用程式
    總結
    實驗!
    完整程式碼

    Chapter10 環面上的Conway生命遊戲
    運作方式
    需求
    程式碼
    執行3D的生命遊戲模擬
    總結
    實驗!
    完整的環面描繪程式碼
    完整的生命遊戲模擬程式碼
    完整的攝影機鏡頭程式碼
    完整的RenderWindow程式碼

    Chapter11 容積描繪
    運作方式
    需求
    程式碼
    執行程式
    總結
    實驗!
    完整的3D材質程式碼
    完整的光線生成程式碼
    完整的容積光線投射程式碼
    完整的2D切片程式碼
    主要檔案的完整程式碼

    【PARTV 駭入硬體】

    Chapter12 Raspberry Pi Pico上的Karplus-Strong演算法
    運作方式
    需求
    程式碼
    執行Pico程式碼
    執行程式
    總結
    實驗!
    完整程式碼

    Chapter13 使用Raspberry Pi實現雷射音樂視覺效果
    運作方式
    需求
    程式碼
    執行雷射顯示器
    總結
    實驗!
    完整程式碼

    Chapter14 IoT花園
    運作方式
    需求
    程式碼
    執行IoT花園
    總結
    實驗!
    完整的CircuitPython程式碼
    完整的BLE掃描器程式碼
    完整的Python Web伺服器程式碼
    完整的主程式碼

    Chapter15 Raspberry Pi上的音訊機器學習
    機器學習概述
    運作方式
    需求
    程式碼
    執行語音辨識系統
    總結
    實驗!
    完整程式碼

    Appendix A 安裝Python
    安裝本書專案的原始碼
    安裝Python和Python模組

    Appendix B Raspberry Pi設定
    設定軟體
    測試連線
    透過SSH登入你的Pi
    安裝Python模組
    使用Visual Studio Code遠端作業

    索引

    章節目錄

    • 1-1
      封面
    • 1-2
      書名頁
    • 1-3
      目錄
    • 1-4
      致謝
    • 1-5
      簡介
    • 1-6
      本書適合哪些人閱讀?
    • 1-7
      本書涵蓋些什麼?
    • 1-8
      第二版有哪些新內容?
    • 1-9
      為何選擇 Python?
    • 1-10
      本書中的程式碼
    • 1-11
      Part I 暖身
    • 1-12
      1
    • 1-13
      Koch 雪花
    • 1-14
      運作方式
    • 1-15
      使用遞迴
    • 1-16
      計算出雪花
    • 1-17
      使用 turtle 進行繪製
    • 1-18
      需求
    • 1-19
      程式碼
    • 1-20
      計算點的位置
    • 1-21
      進行遞迴
    • 1-22
      繪製雪片
    • 1-23
      撰寫 main() 函式
    • 1-24
      執行雪花程式碼
    • 1-25
      總結
    • 1-26
      實驗!
    • 1-27
      完整程式碼
    • 1-28
      2
    • 1-29
      萬花尺
    • 1-30
      運作方式
    • 1-31
      了解參數方程式
    • 1-32
      使用 turtle 模組繪製曲線
    • 1-33
      需求
    • 1-34
      程式碼
    • 1-35
      繪製繁花曲線
    • 1-36
      協調動畫
    • 1-37
      儲存曲線
    • 1-38
      剖析命令列引數並進行初始化
    • 1-39
      執行萬花尺動畫
    • 1-40
      總結
    • 1-41
      實驗!
    • 1-42
      完整程式碼
    • 1-43
      Part II 模擬生命
    • 1-44
      3
    • 1-45
      Conway的生命遊戲
    • 1-46
      運作方式
    • 1-47
      需求
    • 1-48
      程式碼
    • 1-49
      表示網格
    • 1-50
      設定初始條件
    • 1-51
      強制施加邊界條件
    • 1-52
      實作規則
    • 1-53
      發送命令列引數給程式
    • 1-54
      初始化模擬
    • 1-55
      執行生命遊戲的模擬
    • 1-56
      總結
    • 1-57
      實驗!
    • 1-58
      完整程式碼
    • 1-59
      4
    • 1-60
      使用 Karplus-Strong 演算法的泛音
    • 1-61
      運作方式
    • 1-62
      模擬
    • 1-63
      WAV 檔案格式
    • 1-64
      小調五聲音階
    • 1-65
      需求
    • 1-66
      程式碼
    • 1-67
      使用 deque 實作環狀緩衝區
    • 1-68
      實作 Karplus-Strong 演算法
    • 1-69
      寫入 WAV 檔案
    • 1-70
      使用 pyaudio 播放 WAV 檔案
    • 1-71
      建立音符並剖析引數
    • 1-72
      執行撥絃模擬
    • 1-73
      總結
    • 1-74
      實驗!
    • 1-75
      完整程式碼
    • 1-76
      5
    • 1-77
      成群的仿鳥(Boids)
    • 1-78
      運作方式
    • 1-79
      需求
    • 1-80
      程式碼
    • 1-81
      初始化模擬
    • 1-82
      設定邊界條件
    • 1-83
      繪製仿鳥
    • 1-84
      套用仿鳥的規則
    • 1-85
      影響模擬走向
    • 1-86
      逐步推進模擬
    • 1-87
      剖析引數並實體化仿鳥
    • 1-88
      執行 Boids 模擬
    • 1-89
      總結
    • 1-90
      實驗!
    • 1-91
      完整程式碼
    • 1-92
      Part III 操縱影像的樂趣
    • 1-93
      6
    • 1-94
      ASCII 藝術
    • 1-95
      運作方式
    • 1-96
      需求
    • 1-97
      程式碼
    • 1-98
      定義灰階等級和網格
    • 1-99
      計算平均亮度
    • 1-100
      從影像產生 ASCII 內容
    • 1-101
      建立命令列選項
    • 1-102
      把 ASCII 藝術字串寫入文字檔案
    • 1-103
      執行 ASCII 藝術產生器
    • 1-104
      總結
    • 1-105
      實驗!
    • 1-106
      完整程式碼
    • 1-107
      7
    • 1-108
      相片拼貼
    • 1-109
      運作方式
    • 1-110
      分割目標影像
    • 1-111
      計算顏色值的平均
    • 1-112
      比對影像
    • 1-113
      需求
    • 1-114
      程式碼
    • 1-115
      讀入輸入影像
    • 1-116
      計算影像的平均顏色值
    • 1-117
      將目標影像(Target Image)分割成網格
    • 1-118
      尋找區塊的最佳匹配
    • 1-119
      建立影像網格
    • 1-120
      建立相片拼貼
    • 1-121
      編寫 main() 函式
    • 1-122
      執行相片拼貼產生器
    • 1-123
      總結
    • 1-124
      實驗!
    • 1-125
      完整程式碼
    • 1-126
      8
    • 1-127
      立體圖
    • 1-128
      運作方式
    • 1-129
      感知立體圖中的深度
    • 1-130
      使用深度圖
    • 1-131
      像素移位
    • 1-132
      需求
    • 1-133
      程式碼
    • 1-134
      用隨機圓建立區塊
    • 1-135
      重複一個給定的區塊
    • 1-136
      建構立體圖
    • 1-137
      提供命令列選項
    • 1-138
      執行立體圖產生器
    • 1-139
      總結
    • 1-140
      實驗!
    • 1-141
      完整程式碼
    • 1-142
      Part IV 進入 3D 世界
    • 1-143
      9
    • 1-144
      了解 OpenGL
    • 1-145
      OpenGL 的運作方式
    • 1-146
      幾何基元
    • 1-147
      3D 變換
    • 1-148
      著色器
    • 1-149
      頂點緩衝區
    • 1-150
      材質貼圖
    • 1-151
      OpenGL 情境
    • 1-152
      需求
    • 1-153
      程式碼
    • 1-154
      RenderWindow 類別
    • 1-155
      Scene 類別
    • 1-156
      工具函式
    • 1-157
      執行 OpenGL 應用程式
    • 1-158
      總結
    • 1-159
      實驗!
    • 1-160
      完整程式碼
    • 1-161
      10
    • 1-162
      環面上的 Conway 生命遊戲
    • 1-163
      運作方式
    • 1-164
      計算頂點
    • 1-165
      計算照明的法線
    • 1-166
      描繪
    • 1-167
      為三角形條帶上色
    • 1-168
      控制攝影機鏡頭
    • 1-169
      將網格映射到環面上
    • 1-170
      需求
    • 1-171
      程式碼
    • 1-172
      描繪環面
    • 1-173
      實作生命遊戲的模擬
    • 1-174
      建立攝影機鏡頭
    • 1-175
      把所有東西結合起來
    • 1-176
      執行 3D 的生命遊戲模擬
    • 1-177
      總結
    • 1-178
      實驗!
    • 1-179
      完整的環面描繪程式碼
    • 1-180
      完整的生命遊戲模擬程式碼
    • 1-181
      完整的攝影機鏡頭程式碼
    • 1-182
      完整的 RenderWindow 程式碼
    • 1-183
      11
    • 1-184
      容積描繪
    • 1-185
      運作方式
    • 1-186
      資料格式
    • 1-187
      光線生成
    • 1-188
      OpenGL 視窗
    • 1-189
      需求
    • 1-190
      程式碼
    • 1-191
      產生 3D 材質
    • 1-192
      產生光線
    • 1-193
      實作光線投射演算法
    • 1-194
      顯示 2D 切片
    • 1-195
      把程式碼整合在一起
    • 1-196
      執行程式
    • 1-197
      總結
    • 1-198
      實驗!
    • 1-199
      完整的 3D 材質程式碼
    • 1-200
      完整的光線生成程式碼
    • 1-201
      完整的容積光線投射程式碼
    • 1-202
      完整的 2D 切片程式碼
    • 1-203
      主要檔案的完整程式碼
    • 1-204
      Part V 駭入硬體
    • 1-205
      12
    • 1-206
      Raspberry Pi Pico 上的 Karplus-Strong 演算法
    • 1-207
      運作方式
    • 1-208
      輸入與輸出
    • 1-209
      I2S 協定
    • 1-210
      需求
    • 1-211
      硬體配置
    • 1-212
      MicroPython 設定
    • 1-213
      程式碼
    • 1-214
      設定
    • 1-215
      產生音符
    • 1-216
      播放音符
    • 1-217
      撰寫 main() 函式
    • 1-218
      執行 Pico 程式碼
    • 1-219
      總結
    • 1-220
      實驗!
    • 1-221
      完整程式碼
    • 1-222
      13
    • 1-223
      使用 Raspberry Pi 實現雷射音樂視覺效果
    • 1-224
      運作方式
    • 1-225
      使用雷射產生圖案
    • 1-226
      使用 Fast Fourier Transform 分析音訊
    • 1-227
      需求
    • 1-228
      設定 Raspberry Pi
    • 1-229
      建構雷射顯示器
    • 1-230
      硬體連接方式
    • 1-231
      程式碼
    • 1-232
      設定
    • 1-233
      控制硬體
    • 1-234
      處理音訊
    • 1-235
      測試馬達
    • 1-236
      將全部整合在一起
    • 1-237
      執行雷射顯示器
    • 1-238
      總結
    • 1-239
      實驗!
    • 1-240
      完整程式碼
    • 1-241
      14
    • 1-242
      IoT 花園
    • 1-243
      運作方式
    • 1-244
      Bluetooth Low Energy
    • 1-245
      Bottle Web 框架
    • 1-246
      SQLite 資料庫
    • 1-247
      需求
    • 1-248
      設定 Raspberry Pi
    • 1-249
      設定 CircuitPython
    • 1-250
      設定 If This Then That
    • 1-251
      程式碼
    • 1-252
      CircuitPython 程式碼
    • 1-253
      BLE 掃描器程式碼
    • 1-254
      Web 伺服器程式碼
    • 1-255
      主程式檔案
    • 1-256
      執行 IoT 花園
    • 1-257
      總結
    • 1-258
      實驗!
    • 1-259
      完整的 CircuitPython 程式碼
    • 1-260
      完整的 BLE 掃描器程式碼
    • 1-261
      完整的 Python Web 伺服器程式碼
    • 1-262
      完整的主程式碼
    • 1-263
      15
    • 1-264
      Raspberry Pi 上的音訊機器學習
    • 1-265
      機器學習概述
    • 1-266
      運作方式
    • 1-267
      時頻譜
    • 1-268
      在 Raspberry Pi 上進行推論
    • 1-269
      需求
    • 1-270
      程式碼
    • 1-271
      在 Google Colab 中訓練模型
    • 1-272
      在 Raspberry Pi 上使用模型
    • 1-273
      執行語音辨識系統
    • 1-274
      總結
    • 1-275
      實驗!
    • 1-276
      完整程式碼
    • 1-277
      A
    • 1-278
      安裝 Python
    • 1-279
      安裝本書專案的原始碼
    • 1-280
      安裝 Python 和 Python 模組
    • 1-281
      Windows
    • 1-282
      macOS
    • 1-283
      Linux
    • 1-284
      B
    • 1-285
      Raspberry Pi 設定
    • 1-286
      設定軟體
    • 1-287
      測試連線
    • 1-288
      透過 SSH 登入你的 Pi
    • 1-289
      安裝 Python 模組
    • 1-290
      使用 Visual Studio Code 遠端作業
    • 1-291
      索引
    • 1-292
      版權頁
    • 1-293
      封底

    常見問答

    您可以透過手機、平板或是電腦登入 HiSKIO 平台,在【我的學習】>【我的書籍】頁面,選擇想看的電子書。

    猜你喜歡

    | 尚無內容

    用戶評價

    | 收集中

    銷售方案