与孩子一起学编程
该书是一本写给孩子看的编程书。作者以Python语言为例,详尽细致地介绍了从Python如何安装、字符串和操作符等程序设计的基本概念,到条件语句、函数、模块等进阶内容,直至用Python实现游戏编程。书中的语言生动活泼,叙述简单明了。
目录
图书信息摘要目录译序前言什么是编程术语箱为什么学编程有趣的内容
图书信息书名: 与孩子一起学编程
书号: 978-7-115-23996-9
原书名: Hello World! Computer Programming for Kids and Other Beginners
原出版社: Manning
丛书名: 图灵原版计算机科学系列
分类: 计算机 >> 程序设计
计算机 >> Web编程与设计 >> Python
作者: Warren Sande, Carter Sande
译者: 苏金国 等
出版日期: 2010-11-10
语种: 简体中文
开本: 16开
页数: 408
摘要本书是一本写给孩子看的编程书。作者以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 寻求帮助——Pygame174
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 另一个游戏PyPong226
第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 在文件中保存内容:pickle300
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 游戏编程与Pygame355
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,非常喜欢学习和使用这种语言,我想你也会和我一样。有趣的内容还有一点需要指出……
使用计算机最有趣的就是玩游戏,游戏中的图像和音效对小孩子尤其有吸引力。我们将要学习如何编写自己的游戏,在这个过程中还会利用图形和声音做很多工作。下面就是我们将要开发的一些程序的屏幕截图。
不过,我认为(或者说我希望),就像让飞船和滑雪的角色在屏幕上移动一样,你会发现学习这些基础知识并着手编写第一个程序同样很有趣。
祝你玩得开心!