本书整理了Python语言面向初学者的几乎所有基础知识点,并对这些知识做了一定程度的拓展与提高。本书内容不仅包括有助于理解基本知识点的案例代码,还包含了经典数学问题等方面的项目,以及如何用Python开发音乐播放器以及弹球游戏等项目。
这是一本交互性极强的书,书中提供了大量的代码练习,包括代码填空、代码阅读、代码设计以及总结归纳等,有助于形成一定的编程思维模式,快速、牢固地掌握Python编程方法与技巧。本书配备部分视频讲解,扫二维码观看视频即可同步学习书中的核心知识及重点内容。
本书适合中小学生以及其他编程初学者学习使用,也适合想陪小朋友一起学习Python编程的家长阅读使用,同时可作为相关培训机构的参考用书。
林松生, 2002年于北京工商大学信息管理专业本科毕业,2003年~2009年供职于中国科技信息研究所,参与创办了国内面向青少年的信息素养提升课程——《信息溯源》(光盘),参与创办了国内关于数字图书馆的杂志——《数字图书馆论坛》。 2009年于广州创业,从事青少年信息素养、信息技能方面的培训业务,也是国内早期创办面向中小学生、学校提供信息素养、信息技能、编程技能培训服务的机构。10余年的发展形成了包含《中小学信息素养及批判性思维课程》《scratch编程课程》《青少年python编程基础课程》《信息奥赛课程》《中小学生算法启蒙课程》《中小学生编程启蒙课程》等,累计培训在校信息技术老师2000余人,直接培训学生约20000余人(含在校授课及校外授课),向广州30余所中小学校、10余家培训机构输出了公司课程体系。基于多年的Python编程一线教学经验及课程内容,我们对公司Python课程涉及到的概念、知识点的描述以及实践项目做了大量的重构与优化工作,书中的内容完全来自教学一线的实践。
1认识编程——无处不在的编程思维
1.1 编程——开启思维训练的钥匙2
1.2 编程学习——是技巧,也是思维,更是习惯2
1.3 另类的语言——程序语言3
2hello world——Python 旅途之始
内容概述5
优雅的代码从认识英语单词开始5
知识、技能目标6
★2.1 磨刀不误砍柴工6
2.2 你的代码“打印机”10
2.3 优雅的代码源于规范的名字——变量11
★2.4 名字与地址——变量定义的原理12
2.5 计算机需要你做点什么14
2.6 打印输出变量16
2.7 学习 Python 怎么能少了小海龟17
划重点19
★拓展与提高19
你掌握了没有21
学编程,多动手21
3平头哥的代码计算器
内容概述23
优雅的代码从认识英语单词开始23
知识、技能目标24
3.1 数值类型及类型转换24
3.2 算术运算26
3.3 比较运算28
3.4 数学内置函数29
3.5 math 模块30
3.6 random 模块31
3.7 给点颜色31
划重点34
★拓展与提高34
你掌握了没有35
学编程,多动手35
4串起来的字符——字符串
内容概述37
优雅的代码从认识英语单词开始37
知识、技能目标38
4.1 字符串创建38
4.2 把串起来的字符取出来39
4.3 字符串运算41
★4.4 取出多个字符——字符串切片43
★4.5 字符串函数44
4.6 print( )有讲究45
4.7 能画能书小海龟47
划重点49
★拓展与提高49
你掌握了没有50
学编程,多动手50
5平头哥的数据收纳盒——列表和元组
内容概述52
优雅的代码从认识英语单词开始52
知识、技能目标53
5.1 数据与“[ ]”的奇妙组合53
5.2 列表访问与切片54
★5.3 二维列表55
5.4 增删改查基本操作56
5.5 列表函数58
5.6 用列表绘图64
5.7 元组66
划重点66
★拓展与提高66
你掌握了没有67
学编程,多动手68
6平头哥的数据收纳盒——字典
内容概述70
优雅的代码从认识英语单词开始70
知识、技能目标70
6.1 键与值的“羁绊”71
6.2 字典的创建71
6.3 字典增删改查72
★6.4 字典内置函数74
划重点75
★拓展与提高75
你掌握了没有77
学编程,多动手77
7是时候作出判断与选择了
内容概述79
优雅的代码从认识英语单词开始79
知识、技能目标80
7.1 生活中的判断与选择80
★7.2 代码逻辑沙盘—流程图81
7.3 条件表达式与关系运算、逻辑运算82
7.4 Python 条件控制语句83
7.5 条件判断嵌套85
7.6 小海龟的判断与选择89
划重点90
★拓展与提高90
你掌握了没有92
学编程,多动手93
8代码之“道”——循环
内容概述95
优雅的代码从认识英语单词开始95
知识、技能目标95
8.1 周而复始的代码——循环概念96
8.2 数着数执行的循环——for 循环99
8.3 Python 循环的分析与设计103
8.4 不满足条件循环就罢工——条件循环104
8.5 循环里面还有循环107
8.6 打断循环的执行115
8.7 无限循环120
8.8 坐过山车的小海龟121
划重点123
拓展与提高123
你掌握了没有124
学编程,多动手125
9数学、传统文化与代码
内容概述127
优雅的代码从认识英语单词开始127
知识、技能目标127
9.1 一只兔子的代码奇遇——斐波那契数列127
9.2 “自恋的数字”——水仙花数130
9.3 代码与对联的融合131
划重点134
拓展与提高134
你掌握了没有135
学编程,多动手 136
10借你的代码来用——函数
内容概述139
优雅的代码从认识英语单词开始139
知识、技能目标140
10.1 函数概述140
10.2 参数144
10.3 变量的作用域150
10.4 函数定义实践150
10.5 随机代码的乐趣152
划重点157
★拓展与提高157
你掌握了没有160
学编程,多动手161
11平头哥的代码百宝箱——模块
内容概述163
优雅的代码从认识英语单词开始163
知识、技能目标163
11.1 模块概念164
11.2 模块创建及使用164
★11.3 内置模块168
11.4 random 模块170
11.5 海龟画图函数总结171
划重点175
★拓展与提高176
你掌握了没有178
学编程,多动手178
12糟糕的代码——异常与异常处理
内容概述180
优雅的代码从认识英语单词开始180
知识、技能目标180
12.1 异常概念与类型181
★12.2 异常捕获与处理182
★12.3 异常抛出186
划重点189
你掌握了没有189
学编程,多动手190
13看不见的“虫子”
内容概述192
优雅的代码从认识英语单词开始192
知识、技能目标192
★13.1 关于 bug192
★13.2 Debug(代码调试)193
划重点197
★拓展与提高197
学编程,多动手198
14不一样的编程——图形界面编程
内容概述200
优雅的代码从认识英语单词开始200
知识、技能目标200
14.1 easygui 的下载安装与导入201
14.2 easygui 函数202
14.3 ATM 实例206
划重点212
★拓展与提高212
你掌握了没有213
学编程,多动手214
15小蟒蛇的文件柜——Python 文件操作
内容概述217
优雅的代码从认识英语单词开始217
知识、技能目标218
15.1 文件概述218
15.2 Python 文件打开、关闭、读操作219
15.3 Python 文件写操作224
15.4 老师再也不担心我会忘记 close 了226
★15.5 “腌菜”与文件读写227
划重点229
★拓展与提高230
你掌握了没有230
学编程,多动手230
16新的挑战——匹配与查找
内容概述232
优雅的代码从认识英语单词开始232
知识、技能目标232
★16.1 正则的概念与应用场景233
★16.2 正则语法规则233
★16.3 正则符号236
划重点240
拓展与提高240
你掌握了没有242
17万物皆对象——面向对象基础
内容概述244
优雅的代码从认识英语单词开始244
知识、技能目标244
17.1 面向过程与面向对象245
17.2 Python 中的类、实例与对象246
17.3 类定义及类实例化247
17.4 属性基础247
17.5 实例属性基础248
★17.6 类与实例综合250
17.7 Python 面向对象概念集合251
划重点252
★拓展与提高252
你掌握了没有252
学编程,多动手253
18对象的特征——属性
内容概述255
优雅的代码从认识英语单词开始255
知识、技能目标255
18.1 属性概念—Python 语言特点256
18.2 类属性257
18.3 实例属性260
18.4 私有属性264
划重点266
★拓展与提高266
你掌握了没有267
学编程,多动手268
19对象的行为——方法
内容概述270
优雅的代码从认识英语单词开始270
知识、技能目标270
19.1 实例方法、类方法与静态方法271
19.2 方法的私有化276
19.3 面向对象总结回顾277
划重点279
★拓展与提高 279
★你掌握了没有282
学编程,多动手282
20寻求“爸爸”的帮助——继承
内容概述284
优雅的代码从认识英语单词开始284
知识、技能目标284
20.1 继承的概念285
★20.2 继承的传递性286
20.3 重写—方法覆盖287
20.4 给父类方法加点料—方法扩展288
20.5 __init__()初始化构造方法的继承289
★20.6 多继承与继承顺序291
划重点292
★拓展与提高293
你掌握了没有293
学编程,多动手293
21游戏开发中的图形
内容概述298
优雅的代码从认识英语单词开始298
知识、技能目标299
21.1 pygame 模块概述299
21.2 绘制图形准备305
21.3 绘制圆形307
★21.4 彩虹圈项目309
21.5 图形与动画315
21.6 碰撞检测、精灵与精灵组323
划重点326
★拓展与提高326
你掌握了没有330
学编程,多动手330
22不一样的输入——事件
内容概述332
优雅的代码从认识英语单词开始332
知识、技能目标332
22.1 事件的概念332
22.2 鼠标事件333
22.3 键盘事件338
★22.4 定时器事件341
划重点343
★拓展与提高343
你掌握了没有344
23游戏开发怎能少了声音
内容概述346
优雅的代码从认识英语单词开始346
知识、技能目标346
23.1 任务分析347
23.2 播放列表347
23.3 按钮实现347
23.4 鼠标模块回顾350
23.5 音乐播放——pygame.mixer.music 模块函数351
划重点356
你掌握了没有356
24弹球游戏
内容概述358
优雅的代码从认识英语单词开始358
知识、技能目标358
24.1 任务分析358
24.2 游戏窗口初始化 361
24.3 球、挡板、计时器初始化362
24.4 游戏循环与时钟363
24.5 让球动起来365
24.6 让挡板动起来367
24.7 挡板和球的碰撞及游戏声音369
24.8 游戏结束、得分、restart 游戏370
划重点376
你掌握了没有376
附录
附录1 常用内置函数377
附录2 Python初学者常见错误389
附录3 程序设计练习394
参考文献400