本书从初学者学习角度出发,通过四个部分:Python 编程基础、大家一起来编程、编程进阶、程序调试与数据库,全面讲解了 Python 的编程基础、软件结构、常用模块等编程知识以及基于 Python 编程的多个游戏综合设计实例,同时也介绍了 Python 文本操作与数据库的有关技巧,不仅适于初学者入门,也利于 Python 开发者全面提高技能。
书中每一章都有配套教学视频,详细讲解操作步骤、编程技巧和注意事项,读者可以扫描每一章的二维码详细、直观学习,如同老师现场指导。
本书可供 Python 编程爱好者、初学者学习使用,也适合作为中学生“信息技术”课程的配套阅读资料,同时也可作为创客教育机构的教学用书。
第一部分 Python编程基础
第1章 Python安装
1.1 搭建编程环境 / 2
1.2 不同操作系统中搭建Python编程环境 / 3
1.2.1 电脑上安装Python / 3
1.2.2 在苹果OSX上安装Python / 4
1.2.3 在Linux系统上安装Python / 4
第2章 Python入门基础
▼ 视频讲解
2.1 在交互式环境中输入表达式 / 6
2.2 整型、浮点型和字符串数据类型 / 9
2.2.1 改变类型 / 10
2.2.2 得到更多信息:type( ) / 12
2.2.3 类型转换错误 / 12
2.3 字符串连接和复制 / 12
2.4 在变量中保存值 / 13
2.5 第一个程序 / 13
2.6 程序剖析 / 17
2.6.1 注释 / 17
2.6.2 print( )函数 / 17
2.7 编程实例 / 18
第3章 控制流
▼ 视频讲解
3.1 布尔值 / 20
3.2 比较操作符 / 20
3.3 布尔操作符 / 21
3.3.1 二元布尔操作符 / 22
3.3.2 not操作符 / 22
3.4 混合布尔和比较操作符 / 23
3.5 控制流的元素 / 23
3.5.1 条件 / 23
3.5.2 代码块 / 23
3.6 程序执行 / 24
3.7 控制流语句 / 24
3.7.1 if语句 / 24
3.7.2 else语句 / 25
3.7.3 elif语句 / 26
3.7.4 while语句 / 28
3.7.5 Break语句 / 30
3.7.6 continue语句 / 31
3.7.7 for循环和range( )函数 / 32
3.8 导入模块 / 35
3.9 用sys.exit( )提前结束程序 / 36
3.10 编程实例 / 36
第4章 函数
▼ 视频讲解
4.1 def语句和参数 / 37
4.1.1 创建一个函数 / 37
4.1.2 参数 / 38
4.2 返回值和return语句 / 41
4.3 None值 / 42
4.4 关键字参数和print( ) / 43
4.5 局部和全局作用域 / 43
4.6 global语句 / 46
4.7 异常处理 / 48
4.8 一个小程序:猜数字 / 50
4.9 编程实例 / 52
4.9.1 Collatz序列 / 52
4.9.2 输入验证 / 52
第5章 列表
▼ 视频讲解
5.1 列表数据类型 / 53
5.1.1 创建列表 / 54
5.1.2 向列表增加元素 / 54
5.2 使用列表 / 55
5.2.1 从列表中获取内容 / 55
5.2.2 列表“分片” / 56
5.2.3 修改元素 / 57
5.2.4 向列表增加元素的其他办法 / 58
5.2.5 从列表中删除元素 / 59
5.2.6 搜索列表 / 60
5.2.7 循环处理列表 / 62
5.2.8 列表排序 / 62
5.2.9 双重列表:数据表 / 64
5.3 增加的赋值操作 / 65
5.4 方法 / 66
5.4.1 用index( )方法在列表中查找值 / 66
5.4.2 用append( )和insert( )方法在列表中添加值 / 67
5.4.3 用remove( )方法从列表中删除值 / 67
5.4.4 用sort( )方法将列表中的值排序 / 68
5.5 例子程序:神奇8球和列表 / 69
5.6 类似列表的类型:字符串和元组 / 70
5.6.1 可变和不可变数据类型 / 71
5.6.2 元组数据类型 / 72
5.6.3 用list( )和tuple( )函数来转换类型 / 73
5.7 引用 / 74
5.7.1 传递引用 / 75
5.7.2 copy模块的copy( )和deepcopy( )函数 / 76
5.8 编程实例 / 77
5.8.1 逗号代码 / 77
5.8.2 字符图网格 / 77
第6章 字典和结构化数据
▼ 视频讲解
6.1 字典数据类型 / 78
6.1.1 字典与列表 / 78
6.1.2 keys( )、values( )和items( )方法 / 80
6.1.3 检查字典中是否存在键或值 / 81
6.1.4 get( )方法 / 81
6.1.5 setdefault( )方法 / 82
6.2 漂亮打印 / 83
6.3 编程实例 / 84
第7章 字符串操作
▼ 视频讲解
7.1 处理字符串 / 86
7.1.1 字符串字面量 / 86
7.1.2 双引号 / 86
7.1.3 转义字符 / 87
7.1.4 原始字符串 / 87
7.1.5 用三重引号的多行字符串 / 88
7.1.6 井号字符(#) / 88
7.1.7 字符串下标和切片 / 89
7.1.8 字符串的in和not in操作符 / 89
7.2 有用的字符串方法 / 90
7.2.1 字符串方法upper( )、lower( )、isupper( )和islower( ) / 90
7.2.2 isX字符串方法 / 91
7.2.3 字符串方法startswith( )和endswith( ) / 93
7.2.4 字符串方法join( )和split( ) / 93
7.2.5 用rjust( )、ljust( )和center( )方法对齐文本 / 94
7.2.6 用strip( )、rstrip( )和lstrip( )删除空白字符 / 95
7.2.7 用pyperclip模块拷贝粘贴字符串 / 96
7.3 编程实例 / 97
项目1:口令保管箱 / 97
项目2:在Wiki标记中添加无序列表 / 98
第8章 Python常用模块
▼ 视频讲解
8.1 使用copy模块来复制 / 101
8.2 keyword模块记录了所有的关键字 / 105
8.3 用random模块获得随机数 / 105
8.3.1 用randint来随机挑选一个数字 / 106
8.3.2 用choice从列表中随机选取一个元素 / 107
8.3.3 用shuffle来给列表洗牌 / 107
8.4 用sys模块来控制程序 / 108
8.4.1 用exit函数来退出程序 / 108
8.4.2 从stdin对象读取 / 108
8.4.3 用stdout对象来写入 / 108
8.4.4 用的Python版本 / 109
8.5 用time模块来得到时间 / 109
8.5.1 用asctime来转换日期 / 112
8.5.2 用localtime来得到日期和时间 / 112
8.5.3 用sleep来休息一会儿 / 113
8.6 用pickle模块来保存信息 / 114
8.7 编程小测验 / 115
第9章 海龟作图
▼ 视频讲解
9.1 海龟模块 / 117
9.1.1 创建画布 / 117
9.1.2 移动海龟 / 118
9.2 从基本的正方形开始 / 122
9.3 画星星 / 122
9.4 画汽车 / 124
9.5 填色 / 126
9.5.1 用来画填色圆形的函数 / 126
9.5.2 使用纯白和纯黑 / 129
9.6 画方形的函数 / 129
9.7 画填色正方形 / 130
9.8 画填好色的星星 / 132
9.9 编程实例 / 133
第二部分 大家一起来编程
第10章 动手操作
▼ 视频讲解
10.1 三道小测试 / 136
10.2 从手指到计算机 / 137
10.3 GUI——图形用户界面 / 142
10.3.1 什么是GUI / 143
10.3.2 第一个GUI / 143
10.3.3 GUI输入 / 144
10.3.4 选择自己的口味 / 145
10.3.5 猜数字游戏 / 148
10.3.6 其他GUI组件 / 149
10.4 给数字起名字 / 150
10.5 发现循环的秘密 / 153
10.6 与循环讲条件 / 155
10.7 使用函数做计算 / 156
10.8 自己也能做动画 / 158
第11章 游戏初体验学用书
▼ 视频讲解
11.1 Pygame的用户界面 / 161
11.1.1 从一个点开始 / 162
11.1.2 Pygame和海龟图 / 163
11.1.3 游戏相关 / 164
11.2 移动和弹跳 / 167
11.2.1 让笑脸移动起来 / 167
11.2.2 实现笑脸动画 / 170
11.2.3 使笑脸弹跳起来 / 171
11.2.4 来回弹跳的笑脸 / 176
11.3 小结 / 179
第12章 互动式游戏
▼ 视频讲解
12.1 点击和拖动 / 181
12.1.1 点击 / 181
12.1.2 利用拖动进行绘制 / 183
12.2 笑脸爆炸 / 186
12.2.1 笑脸精灵 / 186
12.2.2 设置精灵 / 188
12.2.3 更新位置 / 189
12.2.4 设置大小 / 190
12.2.5 实际程序 / 190
12.3 点破气球 / 192
12.3.1 检测碰撞和删除对象 / 192
12.3.2 实际程序 / 193
12.4 小结 / 194
第三部分 编程进阶
第13章 弹球游戏
▼ 视频讲解
13.1 构建游戏框架 / 198
13.1.1 绘制游戏部件 / 199
13.1.2 记录分数 / 200
13.1.3 显示得分 / 203
13.1.4 实际程序 / 204
13.2 完善游戏 / 206
13.2.1 游戏结束 / 206
13.2.2 重新开始 / 207
13.2.3 增加难度 / 207
13.2.4 实际程序 / 209
13.3 增加更多特效 / 210
13.3.1 增加声音 / 210
13.3.2 存储游戏进度 / 211
13.3.3 实际程序 / 213
13.4 小结 / 215
第14章 大战外星人
▼ 视频讲解
14.1 规则项目 / 217
14.2 安装Pygame / 218
14.3 构建飞船 / 218
14.3.1 开始游戏项目 / 218
14.3.2 添加飞船图像 / 221
14.3.3 重构:模块game_functions / 224
14.4 驾驶飞船 / 226
14.4.1 响应按键 / 226
14.4.2 允许不断移动 / 228
14.4.3 左右移动 / 229
14.4.4 调整飞船的速度 / 231
14.4.5 限制飞船的活动范围 / 233
14.4.6 重构check_events( ) / 234
14.5 开炮射击 / 235
14.5.1 添加子弹设置 / 235
14.5.2 创建Bullet_shoot类 / 235
14.5.3 将子弹存储到编组中 / 236
14.5.4 开火 / 237
14.5.5 删除已消失的子弹 / 239
14.5.6 限制子弹数量 / 239
14.5.7 创建函数update_bullets( ) / 241
14.5.8 创建函数fire_bullet( ) / 242
14.6 创建一个外星人 / 243
14.6.1 创建Alien类 / 244
14.6.2 创建Alien实例 / 244
14.6.3 让外星人出现在屏幕上 / 245
14.7 创建一群外星人 / 246
14.7.1 确定一行可容纳多少个外星人 / 246
14.7.2 创建多行外星人 / 246
14.7.3 创建外星人群 / 247
14.7.4 重构 / 250
14.7.5 添加行 / 250
14.8 移动外星人群 / 253
14.8.1 向右移动外星人 / 253
14.8.2 创建表示外星人移动方向的设置 / 255
14.8.3 屏幕边缘判断 / 256
14.8.4 向下移动外星人群并改变移动方向 / 257
14.9 击落外星人 / 258
14.9.1 检测子弹与外星人的碰撞 / 259
14.9.2 为测试创建大子弹 / 260
14.9.3 生成新的外星人群 / 262
14.9.4 提高子弹的速度 / 263
14.9.5 重构update_bullets( ) / 263
14.10 游戏结束 / 264
14.10.1 检测外星人和飞船碰撞 / 264
14.10.2 响应碰撞 / 266
14.10.3 有外星人到达屏幕底端 / 269
14.10.4 游戏结束 / 270
14.11 确定应运行的部分 / 271
14.12 最终的游戏 / 272
14.12.1 invasion_alien.py / 272
14.12.2 game_functions.py / 273
14.12.3 game_settings.py / 275
14.12.4 game_ship.py / 275
14.12.5 game_alien.py / 276
14.12.6 game_stats.py / 277
14.12.7 bullet.py / 277
第15章 火柴人游戏
▼ 视频讲解
15.1 游戏所需图形 / 278
15.1.1 准备图形 / 279
15.1.2 画火柴人 / 280
15.1.3 画平台 / 282
15.1.4 画门 / 282
15.1.5 画背景 / 283
15.1.6 透明 / 284
15.2 开始开发游戏 / 284
15.2.1 创建Game类 / 284
15.2.2 创建坐标类 / 288
15.2.3 冲突检测 / 289
15.2.4 创建精灵类 / 292
15.2.5 添加平台类 / 293
15.3 创建火柴人 / 295
15.3.1 初始化火柴人 / 295
15.3.2 让火柴向左转和向右转 / 298
15.3.3 让火柴人跳跃 / 298
15.3.4 回顾一下 / 299
15.4 火柴人逃生 / 300
15.4.1 创建动画函数 / 300
15.4.2 测试火柴精灵 / 309
15.4.3 门 / 310
15.4.4 最终的游戏 / 312
第四部分 程序调试与数据库
第16章 Python基本文件操作
▼ 视频讲解
16.1 创建和打开文件 / 316
16.1.1 整个文件读取 / 318
16.1.2 文件路径 / 320
16.1.3 逐行读取 / 321
16.1.4 读取指定字符 / 322
16.1.5 打开文件时使用with语句 / 324
16.2 关闭文件 / 325
16.3 写入文件内容 / 325
16.3.1 写入空文件 / 325
16.3.2 写入多行 / 326
16.3.3 附加到文件 / 327
16.4 删除文件 / 328
16.5 文件重命名 / 329
第17章 程序调试
▼ 视频讲解
17.1 异常(错误) / 331
17.2 异常处理语句 / 333
17.2.1 try...except语句 / 333
17.2.2 try...except...else语句 / 335
17.2.3 try...except...finally语句 / 336
17.2.4 使用raise语句抛出异常 / 337
17.3 程序调试 / 338
17.3.1 用Python自带的IDLE进行程序调试 / 338
17.3.2 用assert语句调试程序 / 342
第18章 数据库基本操作
▼ 视频讲解
18.1 数据库编程接口 / 344
18.1.1 连接对象 / 344
18.1.2 游标对象 / 345
18.2 SQLite / 346
18.2.1 数据库文件创建 / 346
18.2.2 SQLite操作 / 347
18.3 使用MySQL / 351
18.3.1 下载安装MySQL / 351
18.3.2 安装PyMySQL / 355
18.3.3 数据库连接 / 355
18.3.4 数据表创建 / 356
18.3.5 数据表操作 / 357