基本觀念之2~條件敘述

1-2條件敘述

條件敘述的語法很簡單,就是if(假如)….else(否則),其精神也很好掌握,假如條件成立,就做某些事,否則就做其他的事(或者甚麼事也不做)。很容易用日常生活所見,舉例來說明它的適用情況

例如有一所M理工學院名聞遐邇,它的入學標準非常嚴格,假如PR>=95才會通知接受(accept),否則一律通知拒絕(reject),這就可以寫成下列程式碼

上面程式碼第3行,在 if PR>=95的敘述中,條件PR>=95是需要做判斷的,可因為第2行已經設定PR=98,滿足了這個條件,所以判斷為真(True),會直接執行下面第4行print(“accept”)

但到了第8行,PR改成88,做PR>=95判斷的結果為假(False),所以會執行第11行else下面的print(“reject”)

要注意在程式碼冒號(:)後面按下Enter鍵時,系統會自動在下一行做縮排(indent),有縮排的程式碼是從屬於沒有縮排的上一行。程式碼上下之間,如果有從屬階層關係就會有縮排,初學者沒有理解這點,即使打字沒有打錯,也會產生編譯執行錯誤。

圖1-2-1:AMD執行長蘇丰姿曾質疑:「沒道理麻省電機博士,要在哈佛企管碩士下面做事。」 

上面的程式碼,可以將else及從屬於它的部份省略,只單獨使用if的部份,用以表示這個條件敘述,只在乎判斷為真的時候該做些甚麼,判斷為假的時候,它甚麼事都不做。從另一個角度來看,也就是容許把功能再擴充,讓條件敘述並不僅僅只能做二元判斷,還可以有多重的選擇

例如另一所鄰近的H大學,學術聲譽並不弱於M理工學院,但其選才標準比較多元,認為課外活動的表現也不容忽視,所以PR值的設定較為寬鬆。PR>=95是一定會接受的,但在85和95之間的學生,它會給予考慮,當然,PR<85它也會拒絕了,程式碼就可以改成下列內容:

我們在上圖第5行,插入了elif指令,它其實是else+if的綜合體,else的部份表示不滿足前面的條件PR>=95,也就是得到PR<95;if的部份表示,在這種情況下(PR<95),再給它設定條件PR>=85。所以這個elif指令得到的整合條件,就是85<=PR<95。

第7行的else,表示在不滿足前面所有條件的情況下,只剩下PR<85的條件了。

因為第2行設定PR=88,所以這個程式會執行第5行elif下面第6行縮排的指令,輸出”consider”。

在條件有好幾項且彼此互斥的情況下,elif可以多次使用。例如學生成績的分等第,就可以善用elif的功能。

Leave a Comment

Your email address will not be published. Required fields are marked *

Shopping Cart