條件比較

簡介

條件比較 」的結果可以是「成立」或是「失敗」,也可以叫作「正確」 或是「錯誤」。 例如,條件式 x < 3 的結果,假如 x 的值是 3 或是比 3 小, 就是正確,否則 x < 3 的結果就是錯誤。

在巨蟒程式語言中, 條件比較 可以是多於一項的比較條件所決定。 它也是 if 這個指令最重要的部分。 if 由條件比較的結果來決定 下面一步的動作是什麼。

這份補充材料就是教你有關 條件比較 的相關事項。

條件比較

在電腦上試試下面指令的結果。(我不會告訴你答案,因為你自己去試出答案比較好。):

>>> 1 < 2   1比2小,所以比較結果成立
[答案是?]
>>> 1 > 2   1不比2大,比較結果失敗
[答案是?]

你應該已經發現,你所得到的答案是「True」或是「False」。在巨蟒程式語言中, True 和 False是兩個內建的常數。(複習: True = 真實; False = 錯誤。)

當然你可以用其他的東西來代替 True 或是 False,但是為避免混淆起見, 最好還適用 True 或是 False 最清楚。

比較

大多數的條件比較是將兩樣東西來作比較。下面就是巨蟒程式語言所常用的條件比較。

a < b 假如a比b小,比較結果是True
a <= b 假如a比b小,或者a等於b,比較結果是True
a > b 假如a比b大,比較結果是True
a >= b 假如a比b大,或者a等於b,比較結果是True
a == b 假如a 等於b,比較結果是True
a <> b 假如a 不等於b,比較結果是True

很明顯的,上面的比較是以a與b都是數字為準的。但是有些時候,比較其他的東西也可以。 例如,比較兩個字串是以它所含的字母順序為準。事實上,在巨蟒程式語言中,你可以 比較任何兩樣東西,但是這些比較可能一點都沒有意義,並且是很愚蠢的。 例如,巨蟒會說 3 比 “silly” 要小,對現實而言,並沒有任何意義。

當你在比較兩樣東西不相等時,你可以用 != 來取代 <>,因為這兩個比較符號, 都是巨蟒所接受的。

要特別注意的是, === 是不相同的。你要用 = 來指定變數的 內容(值),但是 == 是用來比較兩樣東西是否鄉等的符號。

結合多項比較

你可以用 1 < x < 2,意思是「1小於x,並且x小於2」。

其他的狀態

下面是其他比較常用的狀態。

0 等於錯誤 False 1 等於正確 True x in y 假如x等於y中間的一項元素,結果就是 True x not in y 假如x不等於y中間的任何一項元素,結果就是True

結合比較結果

你可以將比較結果與關鍵字 andor ,或者 not 結合起來。 例如, x < 3 and y > 6 就是將 x < 3y > 6 兩個比較結果再用 and 結和起來, 也就是只有當兩項比較結果都是 True 時,整項結果才會是 True。

“if”指令

我們已經知道什麼是 條件比較 ,現在我們可以將 條件比較 用在非常重要的 if 指令中,而用的方法也市非常的簡單:

if x < 3:
    print ’x is less than 3. I’m setting it to 3.’
    x = 3

通常你會希望在 if 的比較結果是正確的時候,做某些事情,當 if 的比較 結果是失敗時,做另一件事情。要這樣做。這時須要用 else 這個指令:

if x<3:
    print ’x is less than 3.’
else:
    print ’x is not less than 3.’

雖然比較不常見,但是有些時候你須要比較一連串的狀態,然後當比較條件為正確時, 執行在它的下面所包含的指令。 這時就須要用 elif ,也就是 “else if” 的意思:

if x<3:
    print ’x is less than 3’
elif x<4:
    print ’x is not less than 3, but it’s less than 4.’
else:
    print "x isn’t even less than 4."

其他的條件比較

條件比較也被用在 while 迴路中,請參考 《補充教材-L》