【129-135关】逻辑与事件-布尔逻辑
这节课我们将介绍一个在条件语句中非常有用的工具,逻辑运算符, 具体来说,我们将学习“or”(逻辑或)操作符。
学习目标;
1、继续练习until循环的使用
2、学习使用逻辑运算“or”
3、学习如何定义数组,并在程序中使用它。
知识讲解:
(1)OR(逻辑或)相当于生活中的“或者”,当两个条件中有任一个条件满足,“or”的运算结果就为“真”。
如果你还不能理解,我们可以和爸爸妈妈一起做一个游戏,你分别问你的爸爸妈妈两个问题:
●你的上衣是红色的吗?
●你穿的是牛仔裤吗?
如果至少有一个答案是“是”,那么就让他站在你的身后。如果两个答案都是“不”,那么他就呆在原地。
我们用伪代码来实现就是这样:
for s in parents
if s.Jacketisred or s.weraringisjeans
s.stand back
在CodeMonkey里,"or"的操作很简单。我们还有另外一个办法去吸引老虎和熊的注意力,那就是让它们玩。现在我们就可以等它们睡着或者玩耍时行动了。
(2)自定义数组:如:[monkey, goat, turtle] 这样用中括号,然后把对象放在中括号内,用逗号隔开,这样就可以像使用香蕉数组(bananas)一样的使用了。
实战闯关:
第129关:“请使用或者 or”,小猴子想悄悄的从老虎眼前溜过去我们需要等到老虎睡着,在这一关有人送给了老虎一个小球,当老虎去玩球的时候它也不会注意到小猴的,所以,只要满足老虎睡着或者老虎在玩就不用等待,直接走过去吃掉香蕉了。
注意观察,在老虎玩的时候小猴走过去是不是也是安全的。
第130关:这一关继续练习理解or的作用,or 指令能够让小猴等到多个判断式中任意一个条件成立,就不再等待,开始下个行动。我们运行一下看看我们的判断语句是在什么时候开始执行
明白了or的使用,我们就完善程序让小猴快去吃掉香蕉吧。
第131关:小猴要吃到香蕉,首先要等老虎睡着或者玩的时候前进,去吃掉第一根香蕉,然后继续等待,直到熊睡着或者玩的时候前进吃到第二根香蕉,这样我们的任务就算完成了。
第132关:这一关需要我们对程序进行debug,错误很明显,因为是需要山羊在熊玩耍或者睡着之前一直等待,修复这个错误,然后走到香蕉跟前。
第133关:有两个香蕉,我们可以有两种思路,第一种,等待安全山羊去吃掉对面的香蕉,然后等待安全小猴去吃掉对面的香蕉。不过如果有很多根香蕉这样做的话就很费劲了。第二种(推荐),也是我们最常用的for循环,在每次循环里首先等待老虎睡着或者玩耍,再使用判断语句,看香蕉的颜色,来决定让谁去吃。
第134关:我的天,有两只大熊,我们需要通过for循环躲过它们,怎么办呢?思路:使用for循环躲过每一头熊,在循环开里首先要等待熊睡着或者玩耍,然后让小猴前进,(因为这里香蕉都在一条直线上而且距离都是10所以只需要用step10前进即可)
附加思考:如果香蕉的距离不相等怎么办?如下图(留作课外思考,有能力的同学欢迎来挑战提供答案,留言给我们)
编程中我们会遇到各种对象,他们都有不同的本领(也就是我们所说的方法),例如:monkey.step 猴子可以有step方法,乌龟也有step方法,但是猴子可以说(monkey.say),而乌龟不能。因此我们在编写程序时要注意这些区别。
回忆一下,我们屏幕上所有的角色(鳄鱼、小猴、山羊、老虎...)都称之为对象,每一个对象都可以归一个类,定义了它能做什么不能做什么。例如我们屏幕上有好几只鳄鱼,可以说这些鳄鱼都属于鳄鱼类,鳄鱼都没有step方法,但是它们都有turn To方法,如同乌龟和猴子也有turn To方法,虽然乌龟和猴子都不属于鳄鱼类。这在有些时候我们需要对不同的对象执行一个通用的操作很有用。例如,我们可以写:
for animal in [Crocodile、monkey, turtle] #这是一个自定义数组
animal.turn To
animal可以是鳄鱼、猴子或者乌龟,只要它是这三个动物中的一个就可以,因为他们都具有相同的turn To方法,因此他们都能够执行turn To操作。
第135关:上图,有两只老虎,思路首先是用for循环躲过每一只老虎,然而本关除了小猴还有山羊,所以,在循环里要挨个让小猴躲过,山羊躲过。进入下一次循环。
伪代码:
for t in tigers
等待安全
小猴前进
等待安全
山羊前进
接下来我们再对这个伪程序进行优化,因为山羊跟小猴都有一个通用的方法step,因此可以自定义一个数组,里面存放的是小猴、山羊,就是这样[monkey,goat],然后用循环对它们使用step。
用for循环优化一下上面程序中的这部分代码:
等待安全
小猴前进
等待安全
山羊前进
优化后:
for stepper in [monkey, goat] #自定义数组
等待安全
stepper 前进
那么完整的就应该是这样
自定义函数 :等待安全()
for t in tigers
for stepper in 自定义数组
等待安全
stepper 前进
好了对照上面的伪代码,去完成本关的程序吧。
思考与练习:
1、简单的说说"and"、"or"操作的区别
2、试着说出下列表格中空白处的结果(true or false)
3、完成本课程对应的特技关卡
答案:
(欢迎大家留言交流,希望本系列能帮助到学习中遇到困难的家长和孩子们,真正在玩中学习到知识。如果你想购买,可以加入少儿编程网官方qq群,人数20+可以组团购买)
本站内容未经许可,禁止任何网站及个人进行转载。