我們往往需要根據某個條件來做出選擇或行動,比如:如果這本書打五折我就買了;我九點半就出發;如果走新路線更近我就走新路線,否則就按老路線走。
編程中,根據條件進行選擇也是一個基本而重要的元素。
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 布爾運算的的例子
好了,就到這里,給對自己有要求或者感興趣的大人們推薦一本經典的書: