第1章 安装Python 1
1.1 下载和安装Python 1
1.2 启动IDLE 2
1.3 如何使用本书 3
1.4 寻求在线帮助 4
第2章 交互式shell 6
2.1 一些简单的数学知识 6
2.2 计算表达式 7
2.3 在变量中存储值 8
2.4 本章小结 12
第3章 编写程序 13
3.1 字符串 13
3.2 连接字符串 14
3.3 在IDLE的文件编辑器中编写程序 14
3.4 Hello World! 15
3.5 保存程序 16
3.6 打开保存过的程序 16
3.7 “Hello World”程序如何工作 18
3.8 变量名称 20
3.9 本章小结 21
第4章 “猜数字”游戏 22
4.1 “猜数字”游戏的运行示例 22
4.2 “猜数字”游戏的源代码 23
4.3 import语句 24
4.4 random.randint()函数 25
4.5 循环 26
4.6 语句块 26
4.7 布尔数据类型 27
4.8 比较操作符 28
4.9 条件 28
4.10 =和==的区别 30
4.11 while循环语句 30
4.12 使用int()函数、float()函数、str()函数和bool()函数来转换值 31
4.13 if语句 33
4.14 用break语句提早离开循环 34
4.15 流程控制语句 36
4.16 本章小结 36
第5章 Jokes 38
5.1 用好print()函数 38
5.2 Jokes游戏的运行示例 38
5.3 Jokes游戏的源代码 38
5.4 转义字符 39
5.5 引号和双引号 40
5.6 print()的end关键字参数 41
5.7 本章小结 42
第6章 Dragon Realm 43
6.1 函数 43
6.2 如何玩Dragon Realm 43
6.3 Dragon Realm游戏的运行示例 44
6.4 Dragon Realm的源代码 44
6.5 def语句 46
6.6 布尔操作符 47
6.7 返回值 51
6.8 全局作用域和局部作用域 51
6.9 形参 53
6.10 设计游戏 56
6.11 本章小结 57
第7章 使用调试器 58
7.1 Bug! 58
7.2 调试器 59
7.3 单步执行 61
7.4 查找Bug 63
7.5 断点 66
7.6 使用断点的示例 67
7.7 本章小结 68
第8章 流程图 69
8.1 如何玩Hangman 69
8.2 Hangman的运行示例 69
8.3 ASCII字符图 71
8.4 用流程图来设计一个程序 71
8.5 生成流程图 73
8.6 本章小结 79
第9章 Hangman 81
9.1 Hangman的源代码 81
9.2 多行字符串 86
9.3 常量 86
9.4 列表 86
9.5 方法 91
9.6 字符串方法lower()和upper() 91
9.7 列表方法reverse()和append() 92
9.8 列表方法split() 93
9.9 range()函数和list()函数 95
9.10 for循环 96
9.11 分片 98
9.12 elif(″Else If″)语句 101
9.13 本章小结 108
第10章 Hangman扩展 109
10.1 字典 110
10.2 random.choice()函数 113
10.3 多变量赋值 114
10.4 本章小结 116
第11章 TicTacToe 117
11.1 Tic Tac Toe的运行示例 117
11.2 TicTacToe的源代码 118
11.3 设计程序 123
11.4 游戏AI 124
11.5 引用 129
11.6 短路求值 137
11.7 None值 140
11.8 本章小结 146
第12章 Bagels 147
12.1 Bagels的运行示例 147
12.2 Bagels的源代码 148
12.3 random.shuffle()函数 151
12.4 复合赋值操作符 153
12.5 列表方法sort() 154
12.6 字符串方法join() 155
12.7 字符串插值 157
12.8 本章小结 160
第13章 笛卡尔坐标 161
13.1 网格和笛卡尔坐标 161
13.2 负数 163
13.3 数学技巧 164
13.4 绝对值和abs()函数 166
13.5 计算机屏幕的坐标系 166
13.6 本章小结 167
第14章 SonarTreasure Hunt 168
14.1 Sonar Treasure Hunt的运行示例 169
14.2 SonarTreasureHunt的源代码 173
14.3 设计程序 179
14.4 找到最近的藏宝箱的算法 185
14.5 列表方法remove() 187
14.6 本章小结 195
第15章 Caesar Cipher 196
15.1 密码学 196
15.2 凯撒密码 197
15.3 ASCII码以及用数字表示字母 198
15.4 函数chr()和ord() 199
15.5 凯撒密码的运行示例 200
15.6 Caesar Cipher的源代码 201
15.7 代码如何工作 202
15.8 字符串方法isalpha() 204
15.9 字符串方法isupper()和islower() 205
15.10 暴力破解 207
15.11 本章小结 209
第16章 Reversi 210
16.1 Reversi的运行示例 211
16.2 Reversi的源代码 215
16.3 代码如何工作 223
16.4 bool()函数 231
16.5 本章小结 244
第17章 ReversiAI模拟 245
17.1 让计算机和自己下棋 245
17.2 百分数 250
17.3 round()函数 251
17.4 AISim2.py的运行示例 252
17.5 比较不同的AI算法 252
17.6 本章小结 259
第18章 图形和动画 260
18.1 安装Pygame 260
18.2 Pygame中的Hello World 261
18.3 Hello World的源代码 261
18.4 运行Hello World程序 263
18.5 元组 264
18.6 RGB颜色 265
18.7 字体和pygame.font.SysFont()函数 266
18.8 属性 267
18.9 构造函数 269
18.10 Pygame的绘制函数 269
18.11 事件和游戏循环 272
18.12 动画 273
18.13 Animation程序的源代码 274
18.14 Animation程序如何工作 276
18.15 运行程序循环 279
18.16 本章小结 282
第19章 碰撞检测与鼠标/键盘的输入 284
19.1 Collision Detection程序的源代码 284
19.2 Collision Detection算法 288
19.3 当遍历一个列表的时候,不要修改该列表 292
19.4 键盘输入程序的源代码 293
19.5 colliderect()方法 300
19.6 本章小结 301
第20章 声音和图像 302
20.1 声音文件和图像文件 303
20.2 精灵和声音程序 303
20.3 Sprites and Sounds程序的源代码 304
20.4 pygame.transform.scale()函数 308
20.5 本章小结 311
第21章 Dodger 312
21.1 回顾Pygame的基本数据类型 312
21.2 Dodger的源代码 313
21.3 全屏模式 322
21.4 游戏循环 325
21.5 事件处理 325
21.6 move_ip()方法 328
21.7 pygame.mouse.set_pos()函数 331
21.8 修改Dodger游戏 335
21.9 本章小结 335