本书上一版荣获Jolt生产效率大奖。 I0 }! ]# Z& H3 L+ e. H! p Q! v
除本书外,市面上没有其他教孩子编程的相关图书。
: w$ _" f/ d- t$ X5 a 麻省理工学院公益计划“每个孩子一台笔记本”发起人尼古拉斯·尼葛洛庞蒂倾力推荐。- o: p0 Z+ _5 n2 Y' T) T" B
内容简介
3 |9 A8 X: Z/ E: \" h 《父与子的编程之旅:与小卡特一起学Python》是一本家长与孩子共同学习编程的入门书。作者是一对父子,他们以Python语言为例,详尽细致地介绍了Python如何安装、字符串和操作符等程序设计的基本概念,介绍了条件语句、函数、模块等进阶内容,讲解了用Python实现游戏编程。书中的语言生动活泼,叙述简单明了。为了让学习者觉得编程有趣,《父与子的编程之旅:与小卡特一起学Python》编排了很多卡通人物及场景对话,让学习者在轻松愉快之中跨入计算机编程的大门。
) y- V w: t9 t1 {0 v3 [. N0 t 《父与子的编程之旅:与小卡特一起学Python》适合中小学生以及一切编程初学者。* ?& p0 t ~+ _/ W1 l0 k8 n
作者简介
/ ]! \. S& U4 V* F) F! T Warren Sande,毕业于加拿大里贾那大学电气工程系。一直在面向计算机初学者教授软件基础课程,编写过大量广受欢迎的技术文档。- [: D' i/ H8 O ~8 f2 P. t* \8 A
Carter Sande,Warren之子,高中生,热爱计算机技术,自幼就跟着父亲玩编程,喜欢骑自行车和编写复古的电子游戏。
# z6 i; K7 r/ j6 L3 { 精彩书评1 q/ e# R, k1 u' b# Y
★上到88岁,下到8岁,都可以阅读本书。它不仅以一种有趣的方式介绍了Python编程的知识,其中的实践还适用于其他编程语言的学习。
/ O: L J4 |4 X! a) E ——Ben Ooms,Sogeti公司软件工程师
* Z2 Y! [4 h O6 s ★不论老幼,只要想学习编程这门有趣的技能,这都是一本非常好的介绍性书籍。7 A5 r( A4 K! S: v/ Z
——Sue Gee,www.i-programmer.info网站
/ r! J# B7 a' e$ y% o2 w ★Warren和Carter由简入难,直到教会读者制作有趣的2D图形游戏和模拟器。Python是我向刚入门的程序员推荐的语言,而本书恰是非常好的学习资源。第1版出版后我就一直向学生们推荐这本书。& P$ O# O* q2 s8 F
——Dave Briccetti,Dave Briccetti Software LLC公司软件开发者和教师目录
: K6 G: }8 ]& j) a 第1章 出发吧 1
/ z7 j( [9 K5 y. U0 K, ]6 S1 ~ 1.1 安装Python 1
5 Q, [+ u0 s. Y 1.2 从IDLE启动Python 3
. C. c' u7 V* t' G 1.3 来点指令吧 4
. p/ X+ T: L+ y2 T+ f/ x2 j/ P) L 1.4 与Python交互 63 P2 A# ~+ L7 P
1.5 该编程了 7
; Y; j. `& s& z5 R4 D 1.6 运行你的第一个程序 9
' h6 R# v9 j* W2 s) G' r 1.7 如果出问题 10- z' K3 U5 l A
1.8 你的第二个程序 12
/ Z4 V1 c9 ^3 \ 第2章 记住内存和变量 15: p4 c; V- p" N$ a/ H4 ~
2.1 输入、处理和输出 15
: p- l8 m$ g: I, w. F q H 2.2 名字 17+ ]' T" L! {8 ?/ ]! [& h
2.3 名字里是什么 21
$ V+ M% }1 m7 H. c9 s! Z 2.4 数字和字符串 220 _% Q3 k# G/ r) S
2.5 它们有多“可变” 23% e% \7 P0 z: F! B
2.6 全新的我 24+ N& u; R1 O: d" Q* A6 K. _
第3章 基本数学运算 27 i3 W9 U' k5 x! i- m% P# C; D
3.1 四大基本运算 27% {) m3 o) E$ C! ?
3.2 操作符 298 T, s' v- t& }% q: T; a
3.3 运算顺序 302 w: ~; o6 _* V( i! H; u& m i+ t
3.4 另外两个操作符 32
8 p( Q% F# m% l7 s, l1 B 3.5 非常大和非常小 34
- n- g' _" U: v+ q& R 第4章 数据的类型 39
0 B* x0 I" b5 Y, _ 4.1 改变类型 391 O0 v4 C- X1 d. m) |
4.2 得到更多信息:type() 42
+ f8 y. f% c9 L% Z 4.3 类型转换错误 43
\2 ^- O! z7 K k" i' P* }8 p 4.4 使用类型转换 43. T; l2 k H. B1 \" v
第5章 输入 45
- p" E( \. w6 _ 5.1 raw_input() 45
. G% r% p. ^3 o; `8 g- {* F7 _ 5.2 print命令和逗号 46
" c) G; Q, D5 J 5.3 输入数字 48* Z6 d: J0 Z' N; g5 ?4 k1 g" l
5.4 来自互联网的输入 50
( B7 U1 k7 G& j& A( v 第6章 GUI——图形用户界面 54
& m6 d- Y h1 p6 Z% u: G) S 6.1 什么是GUI 54
, D- u: j( M8 b* z# R( b 6.2 第一个GUI 550 X0 y; y/ M) ]3 K2 X# T& m
6.3 GUI输入 56* ^( X2 @* g* |
6.4 选择你的口味 57
6 }& p/ @3 [" f6 `+ o$ Z7 K 6.5 再看猜数游戏…… 60
) E2 u7 p. I( i) {+ u1 d8 N 6.6 其他GUI组件 616 }% @ ~& k; e
第7章 判断再判断 64
4 ?0 I6 z# l* S2 ~) p" A8 S4 m 7.1 测试,测试 64# t5 i6 N2 G/ n) c, N
7.2 缩进 66- f7 M0 h8 y; `5 w9 e
7.3 是不是有问题 67
, |3 F3 U; s6 f G0 Y$ p 7.4 其他类型的测试 68
2 Y4 e6 C$ z( s0 Z9 G5 Z: c& t 7.5 如果测试为假会怎么样 69) B. i, k' a6 H
7.6 测试多个条件 71
5 c1 o$ t9 n. U; |- I 7.7 使用and 727 z: G# k9 b+ `1 Z1 o7 W
7.8 使用or 73/ B/ u' f( U- R0 K& ]
7.9 使用not 73* M [0 J4 g' P
第8章 转圈圈 774 a/ F: g4 A; d0 j: j
8.1 计数循环 783 D7 L. g% `' \1 x) Y& A! \
8.2 使用计数循环 80
/ @3 u- H% V- ?2 w, Q 8.3 一条捷径——range() 81
+ G/ _5 [# V5 P; b0 N$ ] 8.4 风格问题——循环变量名 83# j; _7 P; D3 _* m- f& l
8.5 按步长计数 85
& l9 r) [% n4 W0 e5 q7 z# p 8.6 没有数字的计数 87! {9 ~+ E: }5 ?
8.7 关于这个问题…… 88
( {2 c" @" L$ Z4 @* \ 8.8 跳出循环——break和continue 89# j% C# [* _7 r# _6 G
第9章 全都为了你——注释 93
* ~# I7 I% N' p' F5 q) l6 E 9.1 增加注释 93
( I3 A8 j: M% J' W/ n( z 9.2 单行注释 942 O9 s- x: h3 F' O- T9 v
9.3 行末注释 94/ }1 F! H3 `; v& u. R. R+ H" R$ V
9.4 多行注释 94: R. h3 Z- X/ H' C5 }
9.5 注释风格 95) H5 A. _) m8 Z4 F+ |& |2 Y1 N
9.6 注释掉 96
2 v9 e: E6 f7 j* m" y! x 第10章 游戏时间到了 980 ]" ~- Q) v# f( k& `, B; O" t+ V( F
第11章 嵌套与可变循环 103; J6 x9 q2 X7 k0 s5 b
11.1 嵌套循环 103
3 a/ g! _ v: S! o 11.2 可变循环 105
5 c; C7 t: B( r3 k5 r 11.3 可变嵌套循环 1064 A0 ~( x4 C. V0 u8 B
11.4 更多可变嵌套循环 107
! Q+ J7 G# ]- e 11.5 使用嵌套循环 109+ I j+ U9 D0 V" p2 }0 _
第12章 收集起来——列表与字典 1163 Z/ r7 M! q0 U8 v5 G- G
12.1 什么是列表 116' A2 l2 w$ u2 ^) i6 T, M- ~
12.2 创建列表 117. C. }0 ?6 k. F2 m1 l$ a0 ]/ j
12.3 向列表增加元素 117
: k/ W; S: [3 y" w; [8 A 12.4 这个点是什么 118
$ W: P- \* P4 \ 12.5 列表可以包含任何内容 118
$ C: k/ d- J* K/ L$ J' ?. \! M' A 12.6 从列表获取元素 119/ r" E- u+ Y- G0 y- N$ Z4 j0 e
12.7 列表“分片” 120* ^+ m# J7 Y* v y9 G+ a5 d
12.8 修改元素 122$ D7 E& x$ X c! Z4 r6 [& J
12.9 向列表增加元素的其他方法 122
d, w) B) b. [+ u. r/ b8 W 12.10 从列表删除元素 124% h. w: }' ?* L" V& ?* q* U, B1 F
12.11 搜索列表 125) K; R6 j/ F/ a/ V: g: ^
12.12 循环处理列表 126! D2 ]; `/ y! C* \1 ] v5 p6 w( i
12.13 列表排序 127, Y8 Y6 G1 x( V$ P$ k F9 ~* X
12.14 可改变和不可改变 1307 L8 }- S' c' }7 o) R5 G6 C2 p3 Y. R5 z
12.15 双重列表:数据表 130! H9 Z3 ]7 j& }
12.16 字典 133
- ^/ _4 ~; s" r, B' D% a 第13章 函数 140
4 M: y5 e9 q: s4 q/ s, x* } 13.1 函数——积木 140
( ?8 [0 @- c9 } 13.2 调用函数 142: t, M: ^7 k' m1 k2 ?" M
13.3 向函数传递参数 143$ }3 E) P# \8 i6 Z8 u
13.4 有多个参数的函数 146
) [" D6 E6 M9 e 13.5 返回值的函数 148" S3 w; t- ]5 c, Y3 i, F
13.6 变量作用域 1496 o+ M& ?2 _! o# s- M
13.7 强制为全局 152
; V! @) K* f7 B6 @/ d 13.8 关于变量命名的一点建议 153
5 d+ q: _) P- j, E! } ]+ r' U 第14章 对象 155
. L. ^$ K3 {* r5 b, H0 h0 w" S* S 14.1 真实世界中的对象 155
0 D: ~3 s8 V$ S/ u- {" S, l 14.2 Python中的对象 1567 R- \/ u0 Q* H$ O8 q; C9 S
14.3 对象=属性+方法 157
' E7 v0 R% p) i8 C 14.4 这个点是什么 157
7 i+ H( A& v6 `7 o 14.5 创建对象 158$ Z/ V. J3 N0 d2 d, _
14.6 一个示例类——HotDog 163: [/ ~/ W m" [' P B
14.7 隐藏数据 168
0 {3 v. R1 V. d% L 14.8 多态和继承 168
1 Y a d/ s" }; ^ 14.9 未雨绸缪 170
. v/ h* D! w# F% R; b% c; D 第15章 模块 173; ~) U) i! r, v' I3 D- w7 B/ ^
15.1 什么是模块 1737 P/ [# U, h6 G1 @2 |1 R8 a5 D( R
15.2 为什么使用模块 173# f6 s/ [2 k+ ]1 z
15.3 积木桶 1748 N" l1 M, X \6 x0 b" d- e3 A0 s
15.4 如何创建模块 174
]: t4 Z8 M- h# O; J: M$ V 15.5 如何使用模块 174% ?4 V& P- ^2 u# g- A6 F
15.6 命名空间 176! E, X }& x' a
15.7 标准模块 179
$ C% n% D; i- J! r3 B 第16章 图形 183
" p) x( w8 |7 D+ M( t) Q 16.1 寻求帮助——Pygame 183& `% e: u% Y' T- {& i; ?) N- B
16.2 Pygame窗口 183
/ R6 f. B! N* c* B% r! o! n$ r 16.3 在窗口中画图 185 y) \2 X+ O0 [6 d: {7 [; \/ H3 R
16.4 单个像素 194
' B0 ?) D) c0 ~2 i 16.5 图像 198
$ g) b+ ]; W8 h. K0 w( Q) l 16.6 动起来 200: P6 ^' x( x3 @! G
16.7 动画 201# [: j# \, G+ W
16.8 更流畅的动画 2028 q0 s) e. [5 U% m$ o( Q8 g( |
16.9 让球反弹 203
5 r2 j6 }3 |9 b% }. z% F+ M3 x( | 16.10 让球翻转 206) `" i+ ~2 ?6 [/ N+ P8 I$ I) |
第17章 动画精灵和碰撞检测 2091 q3 h2 J; y) U: R
17.1 动画精灵 209
. _4 `9 z8 i( e. M/ S 17.2 嘣!碰撞检测 215$ R5 ^& ~% R3 n4 [5 v8 s
17.3 统计时间 219" x, T9 g1 a. Z+ o2 Q) ?; Q' k/ S
第18章 一种新的输入——事件 224* k) O0 D/ f( b7 G& u, U& S
18.1 事件 2240 f+ R/ E( i" ?& U
18.2 键盘事件 226
3 R# D& H' F# [. u4 { 18.3 鼠标事件 230
# R* {% B% } x; ` 18.4 定时器事件 232# m9 `2 o( j) I, ^) f
18.5 另一个游戏——PyPong 2347 p$ J" o/ Y) O- [5 _4 Z! T2 R& f
第19章 声音 246
& C: h0 R6 c8 E 19.1 从Pygame寻求更多帮助——mixer 24619.2 制造声音与播放声音 247. {- t0 O" a& c; R+ {: d
19.3 播放声音 247
/ ^( }' `( U3 l6 \ 19.4 控制音量 250% f+ E% \. x7 s
19.5 重复音乐 252
) u, g/ S; i* S 19.6 为PyPong添加声音 252
; o# l" t, w3 R4 P' P" ~4 I 19.7 更多声音 253
" y. m. e: `( Y# E5 x 19.8 为PyPong添加音乐 257
7 T9 U% G( L7 f. d+ z 第20章 更多GUI 261
: A1 Q6 V& V: f) ? 20.1 使用PyQt 261
0 K0 z/ a1 G- A; K& _ 20.2 让GUI做点事情 2662 S" ^2 w( Z9 H
20.3 事件处理器的返回 268
! ^+ U/ {; W: Z! i$ e* Z 20.4 移动按钮 2691 G! e' ?& ~0 `
20.5 更多有用的GUI 269$ N: ?) [# i3 D3 E* b7 w
20.6 TempGUI 269
. v" U( b z: j& O9 k4 O. B 20.7 菜单上是什么 275/ L u; u! a9 V2 q
第21章 打印格式化与字符串 2814 C5 S- O2 u w: I2 N C- p& u
21.1 换行 2828 Z' {- A0 K. j- M5 _! q- Z
21.2 水平间隔——制表符 283! ]& f3 }( ?( t* P2 I3 U
21.3 在字符串中插入变量 285- S: \4 c4 t! j# X( ]$ S/ L' y+ T
21.4 数字格式化 2868 z, r& T. Z+ a2 w
21.5 格式化的新方法 291( m1 o4 \# G1 C A+ a
21.6 更多字符串处理 292' z# c; a. N4 Z
第22章 文件输入与输出 299' Z$ ^, }2 q2 e% @) P
22.1 什么是文件 299: s5 j z! N# W0 J
22.2 文件名 300+ Y# l2 ]. e6 Z- ?
22.3 文件位置 301* F/ s) I/ v4 x5 F
22.4 打开文件 3048 h" d' C! e* D( h. {( L$ P a* c
22.5 读文件 305
p. K( l3 \# t' V' j5 \. ` 22.6 文本文件和二进制文件 307
+ C/ p" A! @4 e 22.7 写文件 309
- @2 |& Z6 Q8 A. j 22.8 在文件中保存内容:pickle 312
8 K: c+ L r0 T. g7 W 22.9 又到了游戏时间——Hangman 314
9 o! b4 D0 _# j 第23章 碰运气——随机性 322
5 y, _: {' E) {+ G 23.1 什么是随机性 322
) \( P/ ^$ V8 r% X! u: W3 ^ 23.2 掷骰子 323
5 b# B7 I* E8 j p$ O+ w2 k, T4 X 23.3 创建一副牌 328) z) E1 k$ L& O# A5 `# s
23.4 Crazy Eights 332+ n, O: Z* h* I6 y6 T. t+ c
第24章 计算机仿真 345) `1 g. d5 B+ q8 J# ^
24.1 真实世界建模 3454 n+ Q: ]* S N' S. ^5 \
24.2 Lunar Lander 346
- D8 M* z. `* c+ e& t2 `( A 24.3 跟踪时间 351
6 g/ R. Z6 |# X$ {* ]# j! } 24.4 时间对象 352' {+ j2 Y7 W- }1 N$ t& m/ j
24.5 把时间保存到文件 355( l+ L4 _3 B' z# o$ k+ ~5 Z
24.6 电子宠物 357
+ L* t! ?1 M- J 第25章 Skier游戏的说明 368
$ o8 t) L$ c: G& b, H S C4 j9 } 25.1 滑雪者 368
6 N0 j4 x7 r2 d5 T$ N, {9 S 25.2 障碍物 372( _+ d; T; H0 O
第26章 Python Battle 3819 V1 a, A8 W9 u/ ~7 e$ s" o
26.1 Python Battle 381
7 h2 w, s3 W' _' e 26.2 创建一个Python Battle机器人 383
% R: u+ g3 ~& i5 a% E @8 G 26.3 更复杂的机器人 385- x0 i, P% e, W- U: R& D2 O
26.4 坐标系统 385
, l" Y8 f6 f' T9 G 第27章 接下来呢 390
: I/ M9 p7 G7 } 27.1 致年龄小的读者 390& G% {$ ^+ R" A! L* D' E
27.2 Python 3917 I0 t# n0 R8 C& |3 k- {9 |
27.3 游戏编程与Pygame 391
, A1 z! O+ [/ D 27.4 其他语言的游戏编程(非Python) 391
1 d+ s2 P2 }( q" G; o 27.5 传承BASIC 392! R2 j3 R0 |- T* F+ W
27.6 移动应用 392
% e, m: }: Y i8 s 27.7 回顾 392
- g, L8 n/ q( x4 y R 附录A 变量命名规则 3947 Z7 I+ }2 b2 l$ E
附录B Python 2与Python 3的差异 3961 `. i1 i) m+ Y ?# }- t
附录C 自测题答案 399
( c( a( P& e% n+ Q$ k游客,本下载内容需要支付 1共享币,购买后显示下载链接立即支付
6 A/ \% `8 O" {. @8 P/ c2 N$ J
3 ?6 H L' u/ h) d, f6 F |