前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >理解编程语言只需四个词-编程知识体系介绍(带python及scratch案例)

理解编程语言只需四个词-编程知识体系介绍(带python及scratch案例)

作者头像
一石匠人
发布2018-12-07 17:46:26
8940
发布2018-12-07 17:46:26
举报
文章被收录于专栏:儿童编程儿童编程

学习编程有时候会给人一种高深莫测的错觉,容易让人“敬而远之”。事实并非如此,学习编程其实就是学习一种语言——一种与机器对话的语言。编程语言与人类语言有着很多相似的东西,只要你懂了机器的语言构成,学习编程的过程就像结交一个好朋友。 而你编写程序的过程就像与老朋友聊天一样有趣。这章我们就先从整体上认识一下编程语言的体系,很多编程语言都符合这个标准。

1. 编程体系概述

很多编程语言的主体部分都可以概括为四个部分:数据、运算、控制和执行。Scratch和Python也不例外。

通过设置或者从外界侦测获得数据,然后对获得数据进行运算,根据运算结果用条件判断和循环等方式进行控制,最后执行相应的程序,实现相应的功能或效果,如图4.1所示。

编程体系示意图

比如从Scratch的代码模块分类中我们可以看到数据、运算、控制三个模块;而运动、外观、画笔等模块则可以归为“执行”部分;“侦测”模块是获得数据的一种方式;“事件”是综合运用了数据、运算、控制的一种方式;“更多模块”主要是用函数进行封装,是提高效率的方法。Python与Scratch类似,Scratch的方法都能在Python中找到对应的实现方式。

后面我们用几个案例来说明一下这个编程系统,让大家加深理解。

1.1 案例一:自动驾驶汽车

假设我们设计一辆能够自动驾驶的汽车,能够根据周围的环境自动调整速度和方向,完成驾驶。这个过程就用到了我们上述的编程系统。

数据部分:侦测与前后左右车辆或障碍物的距离,获得数据;提取当前的速度和方向等数据;

运算部分:根据需求对获得的数据进行处理;

控制部分:根据运算结果制定控制计划,如根据车距合理提高或降低行驶速度;根据计算结果判读是否具备改变行驶方向的条件。

执行部分:根据控制计划作出实际的操作,达到最终的结果。

1.2 案例二:我们完成一个愿望

我们完成一个愿望的过程,其实也是在运行上述编程系统,只不过我们没有发觉而已。比如我们要完成筹备一次旅行的的过程。这个过程涉及很多内容:身体条件准备、财务条件准备、生活及工作的安排、出行计划的制定、出行方式的选择等。上述的每一个部分都在默默的运行上述系统,为了简单说明问题,我们只提取其中的“财务准备”来说明问题。

数据部分:通过各种途径了解到某地旅游的各种数据:最佳旅游天数、日均消费额、各个消费项目、最佳出行日期等数据。

运算部分:对获得的数据进行运算,总共需要多少资金,还有多长时间进行准备,每天需要攒钱多少等。

控制部分:根据运算结果制定自己的准备计划,如每天需获得多少资金,通过哪些项目进行节约资金或获得资金。

执行部分:严格执行上面制定的计划并最终获得

1.3 案例三:我们的身体本身

让我们惊讶的是我们的身体本身也在默默地按照编程系统不停运行。身体的触觉、听觉、视觉、嗅觉、痛觉等系统都符合编程系统的设置。这里我们以视觉为例进行说明。

数据部分:我们通过各个感觉器官获得外部的各种刺激,不一定折算成我们熟悉的阿拉伯数值,但一定以某种“数据”形式传递给我们的大脑。例如我们感受到的光的强度。

运算部分:我们的大脑根据获得的“数据”进行各种精密运算,得到我们身体需要的“数据”。例如我们将获得的光的强度的数据传递给大脑,大脑将这个强度数据与眼睛能够承受的光强度数据进行比较运算。

控制部分:根据大脑的运算结果进行判读,形成对器官的不同指令。例如根据运算结果制定眼睛睁眼、眯眼、闭眼的不同指令。

执行部分:我们的身体根据“控制”部分的指令产生相应的反应或动作。例如执行大脑对眼睛额指令,当光线强的时候,眼睛按照指令进行眯眼或闭眼。

2 数据

中国古代哲学(比如《易经》)认为世间万物可以从“象、数、理”三个维度进行描述,这是有一定道理的。比如说我们日常用品,你能看到这个东西,说明他有一定的具象,同时你也可以从长宽高、重量、方位等数据进行描述,同时,这个东西为什么是这个样子(“象”),为什么是这个数据(“数”)一定有他存在的道理,及所谓的“理”。 所以,从某种层面上说我们的世界是一个“数据”的世界,我们在这里讨论的“编程”更是一个离不开数据的小世界,计算机最底层的代码只不过是在处理“0”与“1”两个数字。

在编程语言中数据,一部分由程序捕获,一部分由编程者给定。需要我们注意的是,这里的数据不仅指数学中所指的各个数字,也包括字符串、布尔值等其他内容。更具体的内容,我们会在下面的章节中详细学习。

3 运算

运算指的是对各类数据进行相应的处理,这里既包括我们传统意义上的加减乘除、取模、求余、比较大小等数据运算,也包括或、且、非等逻辑运算。

逻辑运算在程序设计中与数据运算一样重要。特别是在条件判断的控制部分,发挥着举足轻重的作用。就像三个人投票决定某件事:两种相反的意见的关系互为“非”,如“同意”与“不同意”;几个人只要有一人同意即可通过,几个人的意见之间的关系就是“或”; 几个人都同意才可以通过,不同人的意见之间的关系为“且”。

4 控制

控制指根据运算的结果调整、制定相应的指令或计划。主要包括两个方面:条件控制与循环控制。

条件控制就像一个“看门人”,控制符合什么样条件的人才能进入;条件控制也可以是“谈判者”,守住心中的底线,在什么样的一个数值范围内可以接受条件并完成交易。

循环控制就像一个喜欢动脑的“机灵鬼儿”,最不想干的就一遍又一遍地反复做同样的工作,于是他将问题简化,制定了一个自动程序,一按按钮,就可以翘着二郎腿晒太阳去了。

在接下来的章节中我们会详细了解这些“看门人”、“谈判者”和“机灵鬼儿”。

5 执行

“执行”部分的语句最为丰富。是直接呈现最终结果的命令。在各种编程语言中,执行部分的语句也是种类和数量最多的部分。如在Scratch系统自带的代码分类中的运动、外观、声音、画笔等几个部分都可以归结为“执行”部分。

这就像一个企业的人事结构,出主意提想法的是少数人,真正将想法实现,变为真正产品的的是占比最多的专业人才,这些专业人才在执行任务的过程中也需要相互合作。在企业里,专业人才就相当于编程系统中的“执行部分”。编程的过程与管理一个企业出奇相似,如果我们从学习编程的过程中领悟了管理思维,这算是额外收获。

6 提高效率

在本书的后面章节,我们还会学到提高编程效率的两大利器:“函数式编程”和“面向对象编程”。大家首先要明白一点:这两个利器非常好用、对提高编程效率的作用无可替代,但是对于编程实现的功能来说,并没有添加新的东西。也就是说我们完全可以不通过这两大利器完成相应的功能,所以大家学习的时候不要有心理压力,我们只是换了一种更高效的程序编写方式。也许你的心中还有疑虑,既然可以选择不用,为什么还要学习他们?相信你看了后面章节的案例就会有了答案:太方便太强大了,没有理由不用。

7 Scratch案例——无人驾驶汽车

详见链接 Scratch案例——无人驾驶汽车

8 Python案例——喝墨水的小乌龟

详见链接 Python案例——喝墨水的小乌龟

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.11.09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 编程体系概述
    • 1.1 案例一:自动驾驶汽车
      • 1.2 案例二:我们完成一个愿望
        • 1.3 案例三:我们的身体本身
        • 2 数据
        • 3 运算
        • 4 控制
        • 5 执行
        • 6 提高效率
        • 7 Scratch案例——无人驾驶汽车
        • 8 Python案例——喝墨水的小乌龟
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档