和小家伙一起學編程 001 條件

我們往往需要根據某個條件來做出選擇或行動,比如:如果這本書打五折我就買了;我九點半就出發;如果走新路線更近我就走新路線,否則就按老路線走。

編程中,根據條件進行選擇也是一個基本而重要的元素。

Scratch 的條件選擇例子

按條件執行動作

點擊綠旗子開始后,小貓會先說:“你好!”;然后讓你輸入一個數字,如果這個數字大于5,它就會說:“這個數字比5大!”。

根據條件選擇

稍微修改一下,小貓還會在數字小于等于5是說:“這個數字等于5或者比5小!”

Python 的條件選擇例子

打開IDLE:

>>> x = 10
>>> if x > 5:
    print("x is greater than 5!")
    
x is greater than 5!
>>> 

繼續:

>>> x = 2
>>> if x > 5:
    print("x is greater than 5!")
else:
    print("x is not greater than 5!")

x is not greater than 5!
>>> 

除了條件語句,其實我們還用到了變量,在Scratch的例子里,是我們的“回答”,在Python的例子中,我們設置了一個名字為x的變量,變量也是編程中一個基本而重要的元素,可以把它想象為起了名字的盒子,盒子里面可以裝上數字或其他東西,而我們可以用盒子的名字來區別和使用它們。

再前進一步:

>>> x = 2
>>> x > 5
False
>>> x < 5
True
>>> x == 5
False

我們把變量x設為2,然后輸入三個式子,用編程的術語說,表達式。

前兩個容易理解,因為x這個盒子里裝的是2,2 > 5是假的,Python回答False,或者說計算后給出表達式的值:False。

x == 5 不同于 x = 5。

在Python中“x = 5”是將變量x賦值5,或者說,把5這個數字裝進名為x的盒子里,這是一個語句,或者說命令。

而“x == 5”是一個表達式,就像數學里的算式,Python會計算它的值,如果x等于5,那么這個表達式的值就是真(True),否則就是假(False)。

那么如果我們的條件比較多呢,比如我們要把80分到100分的成績都算A:

>>> x = 72
>>> (x > 80) and (x <= 100)
False
>>> x = 80
>>> (x > 80) and (x <= 100)
False
>>> x = 100
>>> (x > 80) and (x <= 100)
True

又或者,有一堆五顏六色的積木,我們只要其中藍色和綠色的:

>>> s = "Red"
>>> (s == "Green") or (s == "Blue")
False
>>> s = "Blue"
>>> (s == "Green") or (s == "Blue")
True

以上代碼中,我們往名字叫s的盒子里裝了單詞,在Python中,我們把用雙引號圍起來的內容叫作字符串。

字符串可以是字母、單詞、句子,也可以是別的什么由各種符號組成的,字符串是我們可以放進盒子里并用來做許多事情的另一種東西。

還有更復雜的,有一大群小朋友,我們要找出其中穿紅色或者黃色衣服的女孩:

>>> gender = "Boy"
>>> color = "Red"
>>> ((color == "Red") or (color == "Yellow")) and (gender == "Girl")
False
>>> gender = "Girl"
>>> color = "Yellow"
>>> ((color == "Red") or (color == "Yellow")) and (gender == "Girl")
True

利用與(and)、或(or)、非(not)等符號組合起來進行計算,就是布爾運算了,它可以幫助我們進行邏輯推理,就好像一個大偵探,可以根據各種蛛絲馬跡進行推理找出罪犯。

我們知道,計算機內部是用二進制來進行一切計算的,十進制里面有0到9十個數字,而二進制只用0和1,0可以對應假(False),1可以對應真(True),而把與、或、非結合起來就可以進行二進制的加減乘除等算術計算,所以可以說,復雜強大的計算機就是建立在0和1以及與、或、非這些看起來非常簡單的東西的基礎上的。

回到Scratch。

Scratch 布爾運算的的例子

在Scratch中用布爾運算

好了,就到這里,給對自己有要求或者感興趣的大人們推薦一本經典的書:

《編碼》

《編碼:隱匿在計算機軟硬件背后的語言》

節點目錄

和小家伙一起學編程 000 出發

和小家伙一起學編程 001 條件

和小家伙一起學編程 002 循環

和小家伙一起學編程 003 隨機

和小家伙一起學編程 004 編碼

和小家伙一起學編程 005 對象

和小家伙一起學編程 006 函數

和小家伙一起學編程 007 算法

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。