Python 計算與編程實踐 多媒體方法, 4/e (Introduction to Computing and Programming in Python, 4/e)

Mark Guzdial , Barbara Ericson 王海鵬,孫朝軍譯

  • Python 計算與編程實踐 多媒體方法, 4/e (Introduction to Computing and Programming in Python, 4/e)-preview-1
  • Python 計算與編程實踐 多媒體方法, 4/e (Introduction to Computing and Programming in Python, 4/e)-preview-2
Python 計算與編程實踐 多媒體方法, 4/e (Introduction to Computing and Programming in Python, 4/e)-preview-1

買這商品的人也買了...

商品描述

本書是一本獨特的Python程序設計教程,使用媒體計算的方法教授Python編程。
全書共17章(分為4個部分)和1個附錄。
*1部分是前6章,介紹了計算機科學、媒體計算、編程的概念,以及操作文本、圖片、修改像素等編程技巧。
*2部分是第7章到*10章,主要介紹用Python概念對聲音媒體進行各種操作。
第3部分是*11章到*13章,主要介紹針對文本、網絡、數據庫的Python編程,
還介紹了函數式編程、遞歸的思想和應用。
第4部分是*14到*17章,主要介紹視頻文件的編程操作,還介紹了面向對象編程的思想和方法。
附錄部分給出了Python語言的快速參考。
本書通過媒體計算的方法,幫助讀者輕鬆地學習和掌握計算機科學思想和編程方法,
適合作為高等院校計算機專業Python程序設計、多媒體編程等課程的教材,
也適合對Python編程感興趣的讀者自學參考。  

作者簡介

Mark Guzdial

美國佐治亞理工學院計算機學院交互計算系教授、ACM國際計算教育研究研討會系列的創始人之一、
ACM院士和傑出教育家、Journal of the Learning Sciences和Communications of the ACM的編輯委員會成員、
2012年IEEE計算機學會本科教學獎的獲得者。他的研究重點是學習科學和技術,特別是計算教育研究。


Barbara Ericson

研究科學家、美國佐治亞理工學院計算機學院計算外展系主任,
曾擔任美國計算機科學教師協會董事會的教師教育代表、
美國國家信息技術女性中心K-12聯盟的聯合主席以及AP計算機科學考試的*級講師。
她的研究領域包括計算機圖形學、人工智能、醫學和麵向對象編程。
馬克和芭芭拉因在媒體計算方面的工作(包括本書),
獲得了2010年ACM Karl V.Karlstrom傑出計算機教育者獎。  
 

目錄大綱

目錄:  
第1部分引言  
第1章計算機科學與媒體計算概述........2  
1.1什麼是計算機科學..................... ..2  
1.2編程語言.......................................5  
1.3計算機理解的東西.......................7  
1.4媒體計算:為什麼要  
數字化媒體................. ..................9  
1.5每個人的計算機科學.................10  
1.5.1它與溝通有關..................10  
1.5.2它與過程有關..................11  
1.5.3你可能需要它................. .11  
問題............................................... ......11  
深入學習......................................... .....13

第2章編程簡介......................................14  
2.1編程是關於命名的.....................14  
文件及其名稱.................. ............15  
2.2 Python中的編程.........................16  
2.3 JES中的編程. .............................17  
2.4 JES中的媒體計算.............. ........18  
2.4.1顯示圖片..........................22  
2.4.2播放聲音.... ......................24  
2.4.3為值命名..................... .....25  
2.5製作一個程序.............................27  
函數:真正像數學的  
函數接受輸入..............................30  
編程小結.............. ................................32  
問題................ .....................................32  
深入學習.......... ....................................36  

第3章創建和修改文本...... ....................37  
3.1字符串:在計算機中製作  
人類文本................... ..................37  
從字符串製作字符串:  
講故事...................... ....................39  
3.2用for來拆分字符串..................41  
3.2. 1測試這些字母................. 43  
3.2.2拆分字符串,合併  
字符串................. ............ 45  
3.2.3用索引拆分字符串.......... 48  
3.2.4使用索引實現鏡像、  
反轉和分離字符串... ...... 50  
3.2.5使用關鍵字密碼對字符串  
進行編碼和解碼............. 52  
3.3按單詞拆分字符串.................... 53  
3.4字符串內部是什麼.................... 55  
3.5計算機能做什麼...................... .. 56  
編程小結............................................. 57  
程序片段..................................... 57  
字符串程序片段..... .................... 57  
問題............................ ........................ 57  
深入學習....................... ...................... 61\
  
第4章使用循環修改圖片.................... . 62  
4.1如何編碼圖片............................ 62  
4.2操作圖片............ ........................ 66  
瀏覽圖片....................... .............. 70  
4.3更改顏色值............................... . 71  
4.3.1在圖片中使用循環.......... 71  
4.3.2增加/減少紅色(綠色、  
藍色)............................. 73  
4.3.3測試程序:這真的  
有效嗎............................. 77  
4.3.4一次更改一種顏色........ .. 77  
4.4創造日落.................................... 78  
理解函數..... ................................ 78  
4.5變亮和變暗........... ..................... 83  
4.6創造負片......................... ........... 84  
4.7轉換為灰度圖............................ 85  
4.8用索引指定像素........................ 86  
編程小結..................... ........................ 89  
圖片程序片段...................... ....... 89  
像素程序片段..............................90  
顏色程序片段..... .........................90  
問題................................................. ....90  
深入學習........................................... ...93  

第5章使用選擇的圖片技術..................94  
5.1替換顏色:紅眼、棕褐色調,  
海報化....... ..................................94  
5.1.1減少紅眼.......... ................97  
5.1.2棕褐色調和海報化圖片:  
使用條件選擇顏色..........99  
5.2比較像素:邊緣檢測.. ................103  
5.3背景消除.............................. .....105  
5.4摳像......................................... ..108  
5.5在範圍內著色........................... 111  
5.5.1添加邊框......... ............... 111  
5.5.2加亮圖片的右半部分....112  
5.6選擇無需再次測試.............. .....113  
編程小結.......................................... ..115  
問題................................................. ..115  
深入學習............................................117  

第6章按位置修改像素........................118  
6.1更快地處理像素............ ...........118  
6.1.1用range在像素上  
循環............................. ..119  
6.1.2編寫更快的像素循環....121  
6.2鏡像圖片.............................. .....122  
6.3複製和轉換圖片.......................128  
6.3.1複製........... .....................129  
6.3.2複製到較小的圖片和  
修改................. ..............133  
6.3.3複製和引用....................135  
6.3.4創建拼貼圖.. ..................136  
6.3.5通用複制........................139  
6.3 .6旋轉................................140  
6.3.7縮放................................142  
6.4組合像素:模糊........ ...............146  
6.5混合圖片............................... ....148  
6.6繪製圖像...................................150  
6.6.1使用繪圖命令繪圖........151  
6.6.2矢量和位圖表示............ 152  
6.7程序作為指定繪圖的過程....... 154  
我們為什麼要編寫程序............ 155  
編程小結.................................. ......... 156  
問題....................................... ........... 156  
深入學習.................................... ....... 161  

第2部分聲音  
第7章用循環修改聲音....................... 164  
7.1聲音如何編碼... ....................... 164  
7.1.1聲音的物理學............... 164  
7.1.2研究不同的聲音............ 166  
7.1.3編碼聲音....................... 169  
7.1.4二進制數和  
二進制補碼............ ....... 170  
7.1.5存儲數字化的聲音........ 171  
7.2操作聲音....................... ........... 172  
7.2.1打開聲音和操作  
樣本集........................... 172  
7.2 .2使用JES MediaTools .... 175  
7.2.3循環............................... 176  
7.3改變聲音的音量...................... 177  
7.3.1增加音量..................... .. 177  
7.3.2真的有效嗎................... 178  
7.3.3減小音量.............. ......... 181  
7.3.4使用數組索引表示法.... 182  
7.3.5在聲音中理解函數........ 182  
7.4規格化聲音...... ........................ 183  
產生削波...................... ............. 184  
編程小結........................................... 185  
聲音文件函數和片段............... 186  
聲音對象函數和片段............... 186  
面向樣本的函數和片段...... ...... 186  
問題.......................................... ........ 186  
深入學習....................................... .... 188  

第8章修改範圍中的樣本................... 189  
8.1對聲音的不同部分進行  
不同操作........ .......................... 189  
複習索引數組表示法............... 190  
8.2拼接聲音...................................192  
8.3通用剪輯和復制........ ...............197  
8.4反轉聲音.............................. .....199  
8.5鏡像.......................................... .200  
8.6關於函數和作用域...................201  
編程小結............................................203  
問題.. .................................................203  
深入學習............................................204 
 
第9章通過組合片段製作聲音............205  
9.1通過疊加合成聲音...................205  
9.2混合聲音.... ...............................206  
9.3創建迴聲............... ....................207  
9.3.1創建多個迴聲................208  
9.3.2創建和弦........................209  
9.4採樣鍵盤的工作原理...............209  
採樣作為算法............................213  
9.5疊加式合成................. ..............213  
9.5.1製作正弦波....................213  
9.5.2疊加正弦波.. ..................215  
9.5.3檢查結果........................215  
9.5.4方波................................216  
9.5.5三角波........ ....................218  
9.6現代音樂合成......................... ..219  
9.6.1 MP3 ................................220  
9.6.2 MIDI...... .........................220  
編程小結...................... ......................221  
問題.......................... .........................221  
深入學習...................... ......................223  

第10章構建更大的程序................... ...224  
10.1自頂向下設計程序.................225  
10.1.1自頂向下的設計  
實例........... ..................225  
10.1.2設計頂層函數..............226  
10.1.3編寫子函數.... ..............228  
10.2自底向上設計程序.................231  
自底向上過程的示例................232  
10.3測試程序........................ .........232  
測試邊界條件............................234  
10.4關於調試的提示... ..................234  
10.4.1尋找要擔心的語句...... 235  
10.4.2查看變量........... .......... 235  
10.4.3調試冒險遊戲.............. 237  
10.5算法和設計.............. .............. 240  
10.6連接到函數外的數據............. 240  
10.7在JES之外運行程序....... ..... 243  
編程小結.......................................... . 245  
問題............................................... ... 246  
深入學習........................................... 248  

第3部分文本、文件、網絡、  
數據庫和統一媒體  
第11章使用方法操作文本和文件..... 250  
11.1作為統一媒體的文本............. 250  
11.2操作部分字符串..................... 250  
11.2.1字符串方法:介紹  
對象和點表示法......... 251  
11.2.2列表:強大的結構化  
文本............................. 253  
11.2.3字符串沒有字體... ....... 255  
11.3文件:放置字符串和其他  
東西的地方............................ 255  
11.3. 1打開和操作文件.......... 257  
11.3.2生成套用信函.............. 258  
11.3.3從因特網讀取和  
操作數據... .................. 259  
11.3.4從網頁上抓取信息...... 261  
11.3.5讀取CSV數據........ .... 262  
11.3.6編寫程序...................... 263  
11.4 Python標準庫............. ........... 264  
11.4.1再談導入和你自己的  
模塊........................... .. 265  
11.4.2用隨機數為程序添加  
不可預測性................. 266  
11.4.3利用庫讀取CSV  
文件............................. 267  
11.4.4 Python標準庫的  
例子... .......................... 268  
編程小結..................... ...................... 268  
通用程序片段........................ ....268  
字符串函數、函數、  
方法和片段...................269  
列表函數和片段............ ............269  
問題.................................... ...............269  
深入學習................................ ............271  

第12章*級文本技巧:Web和信息...272  
12.1網絡:從網上獲取文本.........272  
12.1.1自動訪問CSV數據....275  
12.1.2訪問FTP ......................276  
12.2使用文本在媒體之間轉換.....276  
12.3在媒體之間移動信息.............279  
12.4使用列表作為媒體表示的  
結構文本.................................281  
12.5在圖片中隱藏信息........ .........282  
將聲音隱藏圖片內....................284  
編程小結............ ................................285  
通用程序片段.............. ..............285  
問題.................................. .................286  
深入學習.............................. ..............287 
 
第13章為Web創建文本....................288  
13.1 HTML:網頁的表示法..........288  
13.2編寫程序生成HTML.............291  
製作主頁.................. ..................293  
13.3數據庫:存儲文本的地方.....296  
13.3.1關係數據庫............. .....298  
13.3.2使用散列表的示例  
關係數據庫..................298  
13.3.3使用SQL .......... ...........301  
13.3.4用數據庫構建網頁......303  
問題................................... ................304  
深入學習............................... .............306  

第4部分影片  
第14章創建和修改影片......................308  
14.1生成動畫.................................309  
14.2使用視頻源........... ..................316  
視頻操作示例............................ 316  
14.3自底向上建立視頻效果.........319  
問題............................... ................... 323  

第15章速度.......................... ............... 326  
15.1關注計算機科學.................... 326  
15.2什麼使程序更快... ................. 326  
15.2.1計算機真正理解的  
是什麼....................... .. 326  
15.2.2編譯器和解釋器.......... 327  
15.2.3什麼限制了計算機的  
速度............................. 331  
15.2.4它真不一樣嗎... ........... 333  
15.2.5讓搜索更快................. 334  
15.2.6永遠不會完成或無法編寫的算法. ........ 336  
15.2.7為什麼Photoshop比JES更快...................... 337  
15.3什麼使計算機更快... ............. 337  
15.3.1時鐘頻率和實際計算... 338  
15.3.2存儲:什麼使計算機變慢.............. ............... 339  
15.3.3顯示............................. 340  
問題................................................. . 340  
深入學習........................................... 341  

第16章函數式編程............................. 342  
16.1使用函數讓編程更容易......... 342  
16.2使用映射和歸約的函  數式編程................................ 345  
16.3針對媒體的函數式編程........ . 348  
不改變狀態的媒體操作............ 349  
16.4遞歸:強大的思想................ 350  
16.4.1遞歸目錄遍歷.............. 354  
16.4.2遞歸的媒體函數.......... 356  
編程小結............... ............................ 357  
函數式編程.................. ..................... 357  
問題........................... ....................... 358  

第17章面向對象編程.................... ..... 360  
17.1對象的歷史............................ 360  
17.2使用海龜........ ........................ 361  
17.2.1類和對象................... .. 361  
17.2.2向對象發送消息.......... 362  
17.2.3對象控制其狀態..........364  
17.3教海龜新技巧...... ...................365  
17.3.1覆蓋原有的海龜方法...367  
17.3.2一次使用多只海龜......368  
17.3.3帶有圖片的海龜..........369  
17.3.4跳舞的海龜..................371  
17.3.5遞歸和海龜..................372  
17.4面向對象的幻燈片放映.........373  
使Slide類更加面向對象..........376  
17.5面向對象的媒體.............. .......376  
17.6盒子喬.....................................380  
17.7為什麼要對象.........................381  
編程小結................... .........................382  
面向對象編程..................... ...............383  
圖形方法................................ ............383  
Turtle和World的方法.....................383  
問題......... ..........................................384  
深入學習........................................... 386  
附錄A Python快速參考...................... 387  
A.1變量...................... ................... 387  
A.2函數創建......................... ........ 387  
A.3循環和條件.............................. 387  
A.4運算符和表示函數.................. 388  
A.5數字函數...................... ........... 389  
A.6序列操作................................. 389  
A.7字符串轉義.............................. 389  
A.8有用的字符串方法... ............... 389  
A.9文件.............................. ........... 390  
A.10列表.................................. ..... 390  
A.11字典、散列表或關聯數組.... 390  
A.12外部模塊........................ ........ 390  
A.13類........................................... 391  
A. 14函數式方法............................ 391  
參考資料............... .................................... 392