Python 是一種強大的編程語言,容易學習而且充滿樂趣。但掌握瞭基本知識後,接下來做什麼?
本書包含瞭一組富有想象力的編程項目,它們將引導你用Python 來製作圖像和音樂、模擬現實世界的現象,並與
Arduino 和樹莓派這樣的硬件進行交互。你將學習使用常見的Python 工具和庫,如numpy、matplotlib 和pygame,
來完成以下工作:
● 利用參數方程和turtle模塊生成萬花尺圖案;
● 通過模擬頻率泛音在計算機上創作音樂;
● 將圖形圖像轉換為ASCII文本圖形;
● 編寫一個三維立體畫程序,生成隱藏在隨機圖案下的3D圖像;
● 通過探索粒子係統、透明度和廣告牌技術,利用OpenGL著色器製作逼真的動畫;
● 利用來自CT和MRI掃描的數據實現3D可視化;
● 將計算機連接到Arduino編程,創建響應音樂的激光秀。
通過本書,你可以享受作為極客的真正樂趣!
Python極客項目編程 下載 mobi epub pdf txt 電子書
目錄
第一部分熱身運動
第1章解析iTunes播放列錶3
1.1 iTunes播放列錶文件剖析 3
1.2 所需模塊 5
1.3 代碼 5
1.3.1 查找重復 5
1.3.2 提取重復 6
1.3.3 查找多個播放列錶中共同的音軌 7
1.3.4 收集統計信息 8
1.3.5 繪製數據 8
1.3.6 命令行選項 9
1.4 完整代碼 10
1.5 運行程序 13
1.6 小結 14
1.7 實驗 14
第2章 萬花尺 15
2.1 參數方程 16
2.1.1 萬花尺方程 17
2.1.2 海龜畫圖 19
2.2 所需模塊 20
2.3 代碼 20
2.3.1 Spiro構造函數 20
2.3.2 設置函數 21
2.3.3 restart()方法 21
2.3.4 draw()方法 22
2.3.5 創建動畫 22
2.3.5 SpiroAnimator類 23
2.3.5 genRandomParams()方法 24
2.3.6 重新啓動程序 24
2.3.7 update()方法 25
2.3.8 顯示或隱藏光標 25
2.3.9 保存麯綫 25
2.3.10 解析命令行參數和初始化 26
2.4 完整代碼 27
2.5 運行萬花尺動畫 32
2.6 小結 33
2.7 實驗 33
第二部分 模擬生命
第3章 Conway生命遊戲 37
3.1 工作原理 38
3.2 所需模塊 39
3.3 代碼 40
3.3.1 錶示網格 40
3.3.2 初始條件 41
3.3.3 邊界條件 41
3.3.4 實現規則 42
3.3.5 嚮程序發送命令行參數 43
3.3.6 初始化模擬 43
3.4 完整代碼 44
3.5 運行模擬人生的遊戲 46
3.6 小結 47
3.7 實驗 47
第4章 用Karplus—Strong算法産生音樂泛音 49
4.1 工作原理 51
4.1.1 模擬 51
4.1.2 創建WAV文件 52
4.1.3 小調五聲音階 53
4.2 所需模塊 54
4.3 代碼 54
4.3.1 用deque實現環形緩衝區 54
4.3.2 實現Karplus—Strong算法 55
4.3.3 寫WAV文件 56
4.3.4 用pygame播放WAV文件 56
4.3.5 main()方法 57
4.4 完整代碼 58
4.5 運行撥弦模擬 61
4.6 小結 62
4.7 實驗 62
第5章 類鳥群:仿真鳥群 63
5.1 工作原理 64
5.2 所需模塊 64
5.3 代碼 64
5.3.1 計算類鳥群的位置和速度 65
5.3.2 設置邊界條件 66
5.3.3 繪製類鳥群 67
5.3.4 應用類鳥群規則 68
5.3.5 添加個體 70
5.3.6 驅散類鳥群 71
5.3.7 命令行參數 71
5.3.8 Boids類 71
5.4 完整代碼 72
5.5 運行類鳥群模擬 75
5.6 小結 76
5.7 實驗 76
第三部分 圖片之樂
第6章 ASCII文本圖形 79
6.1 工作原理 80
6.2 所需模塊 81
6.3 代碼 81
6.3.1 定義灰度等級和網格 82
6.3.2 計算平均亮度 82
6.3.3 從圖像生成ASCII內容 83
6.3.4 命令行選項 84
6.3.5 將ASCII文本圖形字符串寫入文本文件 84
6.4 完整代碼 85
6.5 運行ASCII文本圖形生成程序 87
6.6 小結 87
6.7 實驗 88
第7章 照片馬賽剋 89
7.1 工作原理 90
7.1.1 分割目標圖像 90
7.1.2 平均顔色值 91
7.1.3 匹配圖像 91
7.2 所需模塊 92
7.3 代碼 92
7.3.1 讀入小塊圖像 92
7.3.2 計算輸入圖像的平均顔色值 93
7.3.3 將目標圖像分割成網格 93
7.3.4 尋找小塊的*佳匹配 94
7.3.5 創建圖像網格 95
7.3.6 創建照片馬賽剋 96
7.3.7 添加命令行選項 97
7.3.8 控製照片馬賽剋的大小 97
7.4 完整代碼 98
7.6 運行照片馬賽剋生成程序 102
7.7 小結 103
7.7 實驗 103
第8章 三維立體畫 105
8.1 工作原理 106
8.1.1 感知三維立體畫中的深度 106
8.1.2 深度圖 108
8.2 所需模塊 109
8.3 代碼 109
8.3.1 重復給定的平鋪圖像 109
8.3.2 從創建隨機圓平鋪 110
8.3.3 創建三維立體畫 111
8.3.4 命令行選項 112
8.4 完整代碼 113
8.5 運行三維立體畫生成程序 115
8.6 小結 117
8.7 實驗 117
第四部分 走進三維
第9章 理解OpenGL 121
9.1 老式OpenGL 122
9.2 現代OpenGL:三維圖形管綫 124
9.2.1 幾何圖元 124
9.2.2 三維變換 125
9.2.3 著色器 127
9.2.4 頂點緩衝區 128
9.2.5 紋理貼圖 129
9.2.6 顯示OpenGL 129
9.3 所需模塊 130
9.4 代碼 130
9.4.1 創建OpenGL窗口 130
9.4.2 設置迴調 131
9.4.3 Scene類 133
9.5 完整代碼 137
9.6 運行OpenGL應用程序 142
9.7 小結 143
9.8 實驗 143
第10章 粒子係統 145
10.1 工作原理 146
10.1.1 為粒子運動建模 147
10.1.2 設置最大範圍 147
10.1.3 渲染粒子 149
10.1.4 利用OpenGL混閤來創建更逼真火花 149
10.1.5 使用公告闆 150
10.1.6 生成火花動畫 151
10.2 所需模塊 151
10.3 粒子係統的代碼 151
10.3.1 定義粒子的幾何形狀 152
10.3.2 為粒子定義時間延遲數組 153
10.3.3 設置粒子初始速度 153
10.3.4 創建頂點著色器 154
10.3.5 創建片段著色器 156
10.3.6 渲染 156
10.3.7 Camera類 158
10.4 粒子係統完整代碼 158
10.5 盒子代碼 164
10.6 主程序代碼 166
10.6.1 每步更新這些粒子 167
10.6.2 鍵盤處理程序 168
10.6.3 管理主程序循環 168
10.7 完整主程序代碼 169
10.8 運行程序 172
10.9 小結 172
10.10 實驗 172
第11章 體渲染 173
11.1 工作原理 174
11.1.1 數據格式 174
11.1.2 生成光綫 175
11.1.3 顯示OpenGL窗口 177
11.2 所需模塊 178
11.3 項目代碼概述 178
11.4 生成三維紋理 178
11.5 完整的三維紋理代碼 180
11.6 生成光綫 181
11.6.1 定義顔色立方體的幾何形狀 182
11.6.2 創建幀緩衝區對象 184
11.6.3 渲染立方體的背麵 185
11.6.4 渲染立方體的正麵 185
11.6.5 渲染整個立方體 186
11.6.6 調整大小處理程序 187
11.7 完整的光綫生成代碼 187
11.8 體光綫投射 192
11.8.1 頂點著色器 194
11.8.2 片段著色器 194
11.9 完整的體光綫投射代碼 196
11.10 二維切片 199
11.10.1 頂點著色器 201
11.10.2 片段著色器 202
11.10.3 針對二維切片的用戶界麵 202
11.11 完整的二維切片代碼 203
11.12 代碼整閤 206
11.13 完整的主文件代碼 207
11.14 運行程序 209
11.15 小結 210
11.16 實驗 210
第五部分 玩硬件
第12章 Arduino簡介 215
12.1 Arduino 216
12.2 Arduino生態係統 217
12.2.1 語言 218
12.2.2 IDE 218
12.2.3 社區 218
12.2.4 外設 219
12.3 所需模塊 219
12.4 搭建感光電路 219
12.4.1 電路工作原理 219
12.4.2 Arduino程序 220
12.4.3 創建實時圖錶 221
12.5 Python代碼 222
12.6 完整的Python代碼 224
12.7 運行程序 226
12.8 小結 227
12.9 實驗 227
……
第13章 激光音樂秀 229
第14章 基於樹莓派的天氣監控器 253
附錄A 軟件安裝 275
附錄B 基礎實用電子學 281
附錄C 樹莓派的建議和技巧 289
文摘
版權頁:
· · · · · · (
收起)
評分
☆☆☆☆☆
Python is a powerful programming language that’s easy to learn and fun to play with. But once you’ve gotten a handle on the basics, what do you do next? Python Playground is a collection of imaginative programming projects that will inspire you to use Pyt...
評分
☆☆☆☆☆
Python is a powerful programming language that’s easy to learn and fun to play with. But once you’ve gotten a handle on the basics, what do you do next? Python Playground is a collection of imaginative programming projects that will inspire you to use Pyt...
評分
☆☆☆☆☆
Python is a powerful programming language that’s easy to learn and fun to play with. But once you’ve gotten a handle on the basics, what do you do next? Python Playground is a collection of imaginative programming projects that will inspire you to use Pyt...
評分
☆☆☆☆☆
Python is a powerful programming language that’s easy to learn and fun to play with. But once you’ve gotten a handle on the basics, what do you do next? Python Playground is a collection of imaginative programming projects that will inspire you to use Pyt...
評分
☆☆☆☆☆
Python is a powerful programming language that’s easy to learn and fun to play with. But once you’ve gotten a handle on the basics, what do you do next? Python Playground is a collection of imaginative programming projects that will inspire you to use Pyt...