【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"的操作很簡單。我們還有另外一個辦法去吸引老虎和熊的注意力,那就是讓它們玩?,F在我們就可以等它們睡著或者玩耍時行動了。

(2)自定義數組:如:[monkey, goat, turtle] 這樣用中括號,然后把對象放在中括號內,用逗號隔開,這樣就可以像使用香蕉數組(bananas)一樣的使用了。

實戰闖關:

第129關:“請使用或者 or”,小猴子想悄悄的從老虎眼前溜過去我們需要等到老虎睡著,在這一關有人送給了老虎一個小球,當老虎去玩球的時候它也不會注意到小猴的,所以,只要滿足老虎睡著或者老虎在玩就不用等待,直接走過去吃掉香蕉了。

【129-135關】CodeMonkey邏輯運算符-or

注意觀察,在老虎玩的時候小猴走過去是不是也是安全的。

第130關:這一關繼續練習理解or的作用,or 指令能夠讓小猴等到多個判斷式中任意一個條件成立,就不再等待,開始下個行動。我們運行一下看看我們的判斷語句是在什么時候開始執行

【129-135關】CodeMonkey邏輯運算符-or

明白了or的使用,我們就完善程序讓小猴快去吃掉香蕉吧。

第131關:小猴要吃到香蕉,首先要等老虎睡著或者玩的時候前進,去吃掉第一根香蕉,然后繼續等待,直到熊睡著或者玩的時候前進吃到第二根香蕉,這樣我們的任務就算完成了。

【129-135關】CodeMonkey邏輯運算符-or

第132關:這一關需要我們對程序進行debug,錯誤很明顯,因為是需要山羊在熊玩?;蛘咚耙恢钡却?,修復這個錯誤,然后走到香蕉跟前。

【129-135關】CodeMonkey邏輯運算符-or

第133關:有兩個香蕉,我們可以有兩種思路,第一種,等待安全山羊去吃掉對面的香蕉,然后等待安全小猴去吃掉對面的香蕉。不過如果有很多根香蕉這樣做的話就很費勁了。第二種(推薦),也是我們最常用的for循環,在每次循環里首先等待老虎睡著或者玩耍,再使用判斷語句,看香蕉的顏色,來決定讓誰去吃。

【129-135關】CodeMonkey邏輯運算符-or

第134關:我的天,有兩只大熊,我們需要通過for循環躲過它們,怎么辦呢?思路:使用for循環躲過每一頭熊,在循環開里首先要等待熊睡著或者玩耍,然后讓小猴前進,(因為這里香蕉都在一條直線上而且距離都是10所以只需要用step10前進即可)

【129-135關】CodeMonkey邏輯運算符-or

附加思考:如果香蕉的距離不相等怎么辦?如下圖(留作課外思考,有能力的同學歡迎來挑戰提供答案,留言給我們)

【129-135關】CodeMonkey邏輯運算符-or



編程中我們會遇到各種對象,他們都有不同的本領(也就是我們所說的方法),例如: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循環躲過每一只老虎,然而本關除了小猴還有山羊,所以,在循環里要挨個讓小猴躲過,山羊躲過。進入下一次循環。

【129-135關】CodeMonkey邏輯運算符-or

偽代碼:

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)

【129-135關】CodeMonkey邏輯運算符-or

3、完成本課程對應的特技關卡

【129-135關】CodeMonkey邏輯運算符-or

答案:

【129-135關】CodeMonkey邏輯運算符-or

【129-135關】CodeMonkey邏輯運算符-or

【129-135關】CodeMonkey邏輯運算符-or

【129-135關】CodeMonkey邏輯運算符-or

【129-135關】CodeMonkey邏輯運算符-or

【129-135關】CodeMonkey邏輯運算符-or

【129-135關】CodeMonkey邏輯運算符-or

【129-135關】CodeMonkey邏輯運算符-or

(歡迎大家留言交流,希望本系列能幫助到學習中遇到困難的家長和孩子們,真正在玩中學習到知識。如果你想購買,可以加入少兒編程網官方qq群,人數20+可以組團購買)


本站內容未經許可,禁止任何網站及個人進行轉載。