簡介
在我們生活當中,『判斷』是如影隨形的,有了判斷才能做下一步的行動,例如我現在想執行『買冰棒』這個動作,但目前我的錢只有15塊,冰棒要20塊,這樣15<20得到的結果就是,我無法執行買冰棒這動作。程式語言其實就是要鉅細靡遺的告訴他,有什麼資料、有什麼動作、經過什麼判斷等等,所以這篇我們來說說『判斷式』如何在python中實現,並且有哪幾種判斷式。
判斷運算子
在要進入條件判斷的池子裡前,我們先知悉一下在判斷式中的常見的『比較運算子』,講簡單一點就是我們在判斷式中常見的符號,下面表個會詳述:
< | 判斷是否小於 | a=(4<2) 結果:a=False(False表示條件不成立,結果為假) |
<= | 判斷是否小於等於 | a=(4<=2) 結果:a= False (False表示條件不成立,結果為假) |
> | 判斷是否大於 | a=(4>2) 結果:a=True(True表示條件成立,結果為真) |
>= | 判斷是否大於等於 | a=(4>=2) 結果:a=True(True表示條件成立,結果為真) |
!= | 判斷是否不等於 | a=(4!=2) 結果:a=True(True表示條件成立,結果為真) |
== | 判斷是否等於 | a=(4==2) 結果:a= False (False表示條件不成立,結果為假) |
條件判斷 if
如果….就….,這是在每個程式語言都會使用到的方法,通常在其他程式語言if都會搭配『 () {} 』大、小括弧來使用,例如C#,如下方:
if(我錢包的錢 > 我想買的冰棒的價格)
{
Debug.Log(我買到了!);
}
而在python中有許多的符號都會被省略,我們拿上面的陳述來實作在python中。
這邊有趣的是在Jupyter Notebook中,假如你使用『input』這個方法,當你在執行程式時,可以做輸入資訊的動作。
而如上圖所示,我新增一個MyWallet容器,再新增一個IceCream容器,用意是要讓判斷式來判斷我是否又足夠的錢來買這支冰棒。而大家可以看C#與Python寫法的差別:
C#:
if(我錢包的錢 > 我想買的冰棒的價格)
{
Debug.Log(我買到了!);
}
Python:
if 我的錢包 > 我想買的冰棒: #要注意冒號,等同於C#小括號()
print("我買到了!") #要注意縮排,等同於C#大括號{}
判斷式 if else
當我們透過上方if敘述後熱完身,再來就要加一個角色進來,他就是『else』,這也是非常常見的用法,其實判斷是他們所吃的值就是『bool布林值』,但你可以透過其他資料型態的判斷來轉換布林值給判斷式執行,我們直接看加入else要怎樣運作。
可以看到『else』後方依樣要加『:』,意思就是我不夠錢買冰棒,『所以』只能買到沙士糖,其實很直觀。由於『else』是執行『if』判斷『true or false (bool值)』後過濾出來要執行的程式,當你在『if』判斷為『true』後,則不會執行到『else』這邊,當『if』判斷為『false』後,就會輪到『else』執行了。
判斷式 if-elif-else
依循買東西這個行為來延伸的話,我們可以用到『elif』這個方法穿插在『if-else』中,溫馨提醒一下『elif』是沒有次數限制的,但『if-else』在一個判斷式中只能使用一次,我們直接來看看『elif』要怎麼穿插。
上面我穿插了3個『elif』來判斷更多的事件,進而可執行更多行為,上面我輸入我錢包有13塊,在判斷式中介於18跟10塊之間,所以印出『>=10』的判斷式行為。要注意的是『elif』後面也需要接如同『if』的判斷條件。
判斷式 巢狀if
這邊其實不用被『巢狀』這名詞嚇到,我們只需要『elif』假如加入『條件判斷』,並在『elif條件判斷式下加入另一個判斷式』,這就構成『巢狀』了。我們只需要依照上面範例做一點小改變就好。
可以看到紅色框框處就是巢狀判斷式新增修改的地方,我們為了要讓該判斷是更精確的判斷我們實際的錢可以買到什麼就將第一個『elif』加入判斷條件,假使符合就進入更深一層的判斷,一樣巢狀判斷式可以無限使用,但用太多會顯得很雜亂,請適度使用之,並配合你的執行行為。
小結
if – else – elif,在Python中,跟你掛胸脯保證,是百分之一百二會使用到的,所以這篇是必修課程,假如有程式底子的話,大概可以不用看或是三秒就知道怎樣用了,但是對於想學程式的人,這是扎馬步的必了解的一篇。