與孩子一起學編程

與孩子一起學編程

《與孩子一起學編程》是2010年人民郵電出版社出版的圖書,作者是Warren Sande, Carter Sande。

基本信息

內容簡介

該書是一本寫給孩子看的編程書。作者以Python語言為例,詳盡細緻地介紹了從Python如何安裝、字元串和操作符等程式設計的基本概念,到條件語句、函式、模組等進階內容,直至用Python實現遊戲編程。書中的語言生動活潑,敘述簡單明了。本書適合中小學生以及一切編程初學者。

作品目錄

第1章 出發吧 1

1.1 安裝Python 1

1.2 從IDLE啟動Python 2

1.3 來點指令吧 3

1.4 與Python互動 5

1.5 該編程了 7

1.6 運行你的第一個程式 8

1.7 如果出問題 9

1.8 你的第二個程式 11

第2章 記住記憶體和變數 14

2.1 輸入、處理和輸出 14

2.2 名字 16

2.3 名字里是什麼 20

2.4 數字和字元串 21

2.5 它們有多“可變” 22

2.6 全新的我 23

第3章 基本數學運算  26

3.1 四大基本運算   26

3.2 操作符  28

3.3 運算順序 29

3.4 另外兩個操作符 30

3.5 非常大和非常小 33

第4章 數據的類型  38

4.1 改變類型 38

4.2 得到更多信息:type()  41

4.3 類型轉換錯誤 42

4.4 使用類型轉換 42

第5章 輸入 44

5.1 raw_input() 44

5.2 Print命令和逗號 45

5.3 輸入數字 47

5.4 來自網際網路的輸入 49

第6章 GUI——圖形用戶界面 52

6.1 什麼是GUI 52

6.2 第一個GUI 53

6.3 GUI輸入 54

6.4 選擇你的口味 55

6.5 再看猜數遊戲 59

6.6 其他GUI組件 60

第7章 判斷再判斷 62

7.1 測試,測試 62

7.2 縮進 64

7.3 是不是有問題 65

7.4 其他類型的測試 66

7.5 如果測試為假會怎么樣 67

7.6 測試多個條件 69

7.7 使用and 69

7.8 使用or 70

7.9 使用not 70

第8章 轉圈圈 74

8.1 計數循環 75

8.2 使用計數循環 77

8.3 一條捷徑——range()  78

8.4 風格問題——循環變數名  80

8.5 按步長計數 82

8.6 沒有數字的計數 84

8.7 關於這個問題 84

8.8 跳出循環——break和continue 85

第9章 全都為了你——注釋 89

9.1 增加注釋 89

9.2 單行注釋 90

9.3 行末注釋 90

9.4 多行注釋 90

9.5 注釋風格 91

9.6 注釋掉 92

第10章 遊戲時間到了 94

第11章 嵌套與可變循環 99

11.1 嵌套循環 99

11.2 可變循環 101

11.3 可變嵌套循環 102

11.4 更多可變嵌套循環 103

11.5 使用嵌套循環 105

第12章 收集起來——列表 112

12.1 什麼是列表 112

12.2 創建列表 113

12.3 向列表增加元素 113

12.4 這個點是什麼 114

12.5 列表可以包含任何內容  114

12.6 從列表獲取元素   115

12.7 列表“分片” 116

12.8 修改元素 118

12.9 向列表增加元素的其他方法 118

12.10 從列表刪除元素 120

12.11 搜尋列表 121

12.12 循環處理列表 122

12.13 列表排序 123

12.14 可改變和不可改變  126

12.15 雙重列表:數據表  126

第13章 函式 131

13.1 函式——積木 131

13.2 調用函式 133

13.3 向函式傳遞參數 134

13.4 有多個參數的函式 137

13.5 返回值的函式 139

13.6 變數作用域 140

13.7 強制為全局 143

13.8 關於變數命名的一點建議  144

第14章 對象  146

14.1 真實世界中的對象 146

14.2 Python中的對象  147

14.3 對象 = 屬性+ 方法 148

14.4 這個點是什麼 148

14.5 創建對象 149

14.6 一個示例類——HotDog 154

14.7 隱藏數據 159

14.8 多態和繼承 159

14.9 未雨綢繆 161

第15章 模組 164

15.1 什麼是模組 164

15.2 為什麼使用模組  164

15.3 積木桶  165

15.4 如何創建模組 165

15.5 如何使用模組 165

15.6 命名空間 167

15.7 標準模組 170

第16章 圖形 174

16.1 尋求幫助——Pygame  174

16.2 Pygame視窗 175

16.3 在視窗中畫圖 178

16.4 單個像素 186

16.5 圖像 190

16.6 動起來  192

16.7 動畫 193

16.8 更流暢的動畫 194

16.9 讓球反彈 195

16.10 讓球翻轉 198

第17章 動畫精靈和碰撞檢測 201

17.1 動畫精靈 201

17.2 嘣! 碰撞檢測 207

17.3 統計時間  211

第18章 一種新的輸入——事件 216

18.1 事件 216

18.2 鍵盤事件 218

18.3 滑鼠事件 222

18.4 定時器事件 224

18.5 另一個遊戲PyPong  226

第19章 聲音  238

19.1 從Pygame尋求更多幫助——mixer 238

19.2 製造聲音與播放聲音 239

19.3 播放聲音 239

19.4 控制音量 242

19.5 重複音樂 244

19.6 為PyPong增加聲音 244

19.7 更多聲音 245

19.8 為PyPong增加音樂 249

第20章 更 多 GUI 253

20.1 使用PythonCard .253

20.2 組件 254

20.3 讓GUI做點事情 256

20.4 事件處理器的返回 258

20.5 移動按鈕 259

20.6 更多有用的GUI 259

20.7 TempGUI 259

20.8 選單上是什麼 264

第21章 列印格式化與字元串 271

21.1 換行 272

21.2 水平間隔——制表符  273

21.3 在字元串中插入變數  275

21.4 數字格式化  276

21.5 更多字元串處理  280

第22章 檔案輸入與輸出 287

22.1 什麼是檔案 287

22.2 檔案名稱  288

22.3 檔案位置 289

22.4 打開檔案 292

22.5 讀檔案  293

22.6 文本檔案和二進制檔案  295

22.7 寫檔案  296

22.8 在檔案中保存內容:pickle  300

22.9 又到了遊戲時間——Hangman 301

第23章 碰運氣——隨機性 310

23.1 什麼是隨機性 310

23.2 擲骰子 311

23.3 創建一副牌   316

23.4 Crazy Eights   320

第24章 計算機仿真  333

24.1 真實世界建模 333

24.2 Lunar Lander 334

24.3 跟蹤時間 339

24.4 時間對象 340

24.5 把時間保存到檔案 343

24.6 電子寵物 345

第25章 接下來呢 354

25.1 一般編程 354

25.2 Python 355

25.3 遊戲編程與Pygame 355

25.4 其他Python模組 356

25.5 回顧 358

附錄 變數命名規則   359

自測題答案   361

序言

首先,你可能想知道這本書講些什麼。這是一本編程書,它會告訴你什麼是編程,什麼是程式,程式有哪些方面,需要了解哪些概念……,我不想在這裡列出這些深奧的術語把你嚇住,你在書中可以找到,而且會發現其實這些概念一點也不深奧!最重要的是,讀完這本書,你能自己編程式,甚至可以編寫遊戲,這可能是最讓你著迷的一點吧。

也許你覺得這沒有什麼特別之處,不過作為譯者,我從來沒有這么熱切地盼望一本書儘早出版,更確切地講,應該說我女兒從來沒有對我翻譯的書表示出如此高漲的熱情。因為,這本書確實與眾不同!

你相信嗎?這本書的作者之一Carter與你們一樣,也是一個小學生,同樣對計算機世界充滿了好奇。也許你會驚喜地發現,你腦海中的疑問與他在書中問到的居然如出一轍。這本書不像一個糟糕的演講者只顧自己長篇大論地說教,自以為作為聽眾的你已經領會他的意思;實際上,你會感覺Carter就像是你自己,你可以按自己的思維方式輕鬆地掌握書中的內容,可以發現你真正想問的問題並順利找到答案,還可以在清晰的指導下動手編程,讓大家對你刮目相看。

還等什麼呢?現在就拿起書來,讓它帶你進入看似神秘的編程世界吧!不過不要忘了,一定要自己動手試一試,如果只是紙上談兵,只看不做,你就無法感受到程式成功運行那一刻的快樂和成就感。

希望多年以後你在計算機領域小有成就時能這樣感嘆:多虧我小時候看過一本《與孩子一起學編程》,是一個小孩子和他的爸爸寫的,那本書太棒了,要不是這本書……

本書由蘇金國主譯,姚曜、荊濤、高強、劉鑫、范松峰分別對全書各章進行審閱,另外喬會東,劉亮、王小振、李璜、牛亞峰等參與了全書的修改整理。全體人員共同完成了本書的翻譯工作。特別要感謝蘇鈺涵小同學,作為這本書譯稿的第一位小讀者,她提出了很多寶貴的建議,正躊躇滿志地著手開發自己的遊戲……

前言

什麼是編程

很簡單,編程(programming)就是告訴計算機要做什麼。計算機只是一些沒有生命的機器,它們自己可不知道該做什麼,一切都得你來告訴它,而且你還必須把細節都說清楚。

不過,一旦給計算機“下達”了正確的指令,它們就能做很多讓人驚奇的事情。

術語箱

指令(instruction)就是下達給計算機的一個基本命令,通常要求計算機做某件特定的事情。

電腦程式是由多個指令組成的。為什麼計算機能做到這么多了不起的事情呢?這是因為有許多聰明的程式設計師編寫了程式或者軟體(software)來告訴它們該怎樣做。軟體就是你的計算機上運行的程式,有時軟體也可能運行在與你的計算機相連的另一台計算機上,比如Web伺服器。

Python——我們和計算機溝通的語言

所有計算機在內部都使用二進制。不過大多數人都不擅長使用這種語言。我們需要一種更簡便的方法來告訴計算機要做什麼。所以人們發明了程式語言。利用計算機程式語言,我們可以先用一種自己能理解的方式寫程式,然後再把它翻譯成二進制供計算機使用。

到底怎么回事?

計算機要用非常非常多的電路來“思考”。在最底層,這些電路是一些開關。

工程師和計算機科學家們使用1和0來代表“開”和“關”。所有這些1和0是一種稱為二進制(binary)的編碼。二進制實際上就表示“兩種狀態”。這兩種狀態分別是“開”和“關”,也就是1和0。

你知道嗎? 二進制位 = 比特(bit)。

有很多不同的程式語言。本書會教你如何使用其中的一種語言(Python)來告訴計算機要做什麼。

為什麼學編程

你可能不會成為一名專業的程式設計師(大多數人都不會),不過學習編程確實有很多理由。

最重要的原因是你想學!不論是作為業餘愛好還是作為職業,編程都會很有意思,都會讓你很有收穫。

如果你對計算機感興趣,想更多地了解它到底怎么工作,想知道怎樣才能讓它做你想做的事情,這也不失為學習編程的一個好理由。

也許你想編寫自己的遊戲,或者找不到合適的程式能完全滿足你的需要,如果是這樣,你就會想自己編寫程式。

如今計算機已經無處不在,工作中、學校里或者在家裡很有可能使用計算機(可能這三種場合都少不了計算機)。學習編程能幫助你從總體上更好地了解計算機。

為什麼選用Python語言

既然有各種各樣的程式語言可以選擇(確實太多了!),對於這樣一本給孩子們看的編程書,我為什麼要選擇Python呢?主要有以下幾個原因。

最初創建Python語言的出發點就是為了便於學習。在我所見過的所有計算機語言中,Python程式是最易讀、最容易編寫,也最容易理解的。

Python是免費的。你可以下載Python,還可以下載很多很多用Python編寫的既好玩又有用的程式,所有這些都是免費的。我會在第1章告訴你從哪裡下載。

Python是開源(open source)軟體。從某個角度來講,“開源”的含義是指任何用戶都可以擴展(extend)Python,也就是創建一些新“工具”。補充這些新工具後,就可以用Python做更多的事情,或者儘管是做同樣的事情,但是有了這些新工具後會比原先更容易。很多人已經做了這種擴展,目前已經有非常多的免費Python工具可以供你下載。

Python並不是一個“玩具”。確實,它非常適合學習編程,不過實際上全世界每天都有成千上萬的專業人士在使用這種語言,甚至包括類似NASA(美國航空航天局)和Google這些機構的程式設計師。所以,學習Python後,你不用轉換語言再去學一種“真正的”語言來編寫“真正的”程式;很多工作都完全可以使用Python完成。

Python可以在各種不同類型的計算機上運行。Windows電腦、蘋果電腦和運行Linux的計算機上都可以使用Python。大多數情況下,如果一個Python程式可以在你家裡的Windows 電腦上運行,那么這個程式同樣也可以在你學校的蘋果電腦上運行。本書適用於幾乎所有安裝了Python的計算機。(另外要記住,如果你要用的計算機上還沒有安裝Python,完全可以免費安裝。)

我自己很鍾愛Python,非常喜歡學習和使用這種語言,我想你也會和我一樣。

有趣的內容

還有一點需要指出……

使用計算機最有趣的就是玩遊戲,遊戲中的圖像和音效對小孩子尤其有吸引力。我們將要學習如何編寫自己的遊戲,在這個過程中還會利用圖形和聲音做很多工作。下面就是我們將要開發的一些程式的螢幕截圖。

不過,我認為(或者說我希望),就像讓飛船和滑雪的角色在螢幕上移動一樣,你會發現學習這些基礎知識並著手編寫第一個程式同樣很有趣。

祝你玩得開心!

相關詞條

相關搜尋

熱門詞條

聯絡我們