20 C
Taipei
星期四, 21 10 月, 2021
Home程式設計課程PythonPython教學-控制結構(2)if...else條件判斷式

Python教學-控制結構(2)if…else條件判斷式

if 用法

Python 中,若有滿足特定的條件,則可以使用 if 指令。要是滿足了某個指定的條件 (即是布林值為「True」,若不懂何謂布林值,請看這篇:Python控制結構1.布林值Boolean-True or False?),則這個程式的片段會被執行。反之,則不執行。

if 指令的語法如下

if <條件>:
   執行的狀況

範例:如果 x 小於 0 則輸出「x 是負數」,而不論 x 的值為何,最後都會輸出「此Python程式結束」。

x=-10
if x < 0:
    print("x 是負數")
print("此Python程式結束")

結果顯示如下:

x 是負數
此Python程式結束

呈上例,若 x=10 的話,則結果只會顯示「此 Python 程式結束」。

有時,if 條件式裡還會有另一組 if 條件式,就形成多層 if 條件式的架構。這種情況稱為「巢狀 if 條件式」。巢狀 if  條件式就好像設定多道關卡,資料必須經過每一道關卡的檢驗。滿足了第一關的條件,才會到第二關。這是用來檢視是否滿足多種條件的方法。如下例,如果要判斷一個人是否可以觀看輔導級、甚至限制級的電影,必須先知道他的年齡。我們把輔導級的年齡設定為 15 歲,限制級的年齡設定為 18 歲。若能觀看輔導級,不見得可以看限制級的電影;但若能看限制級的電影,則輔導級電影也可以看。今天來了一個 17 歲的人,正從以下電影考慮挑一部電影看。他們是:限制級的「藍波:最後一滴血」和輔 15 級的「無間行動」。他的年齡可以看哪一部電影呢?請參考以下程式碼:

age = 17
if age >= 15:
   print("已滿15歲,可以觀賞輔15級的電影")
   if age <18:
      print("未滿18歲不得觀賞限制級的電影")

結果顯示如下:

已滿15歲,可以觀賞輔15級的電影
未滿18歲不得觀賞限制級的電影

因此,他必須放棄「藍波:最後一滴血」這部片子,而選擇「無間行動」。

if 條件判斷式,可以不只有一種條件。若要新增條件的話,就必須要加「else」,說明如下:

else 用法

Python 的 if…else 條件判斷式,除了單純的 if 設定一組條件之外,還可加上 else…if  或 else 增加條件。每一個 if,都可以設定不同的條件。例如:今天你要寫出一個 Python 程式,判斷你所輸入的樂團名稱「Megadeth」,是否在四大鞭擊金屬樂團之列。則程式如下例所示:

bandname = "Metallica"
if bandname == "Megadeth":
    print("無庸置疑,Megadeth 無論在歌曲的編制、樂句的表現與技巧的專精,都勝過其他的鞭擊金屬樂團。")
else: 
    if bandname == "Metallica":
        print("Metallica 也是四大鞭擊金屬樂團之一。但是最好的是前四張專輯")
    else:
        if bandname == "Anthrax":
            print("Anthrax 也是四大鞭擊金屬樂團之一。但是地位不如 Megadeth 與 Metallica")
        else: 
            if bandname == "Slayer":
                print("Slayer 確實是四大鞭擊金屬樂團之一。但是我對他們不熟")
            else:
                print("你輸入的樂團名稱不在四大鞭擊金屬樂團之中")

結果顯示如下:

Metallica 也是四大鞭擊金屬樂團之一。但是最好的是前四張專輯

以上 Python 的例子,你可以把樂團名稱換成「Megadeth」、「Anthrax」、「Slayer」或是其他的名稱試試看喔!

else if 可以縮寫成「elif」,承上方的例子,把所有的 else if 都改成「elif」則結果如下例所示(下例也把樂團名稱改成 “Megadeth”):

bandname = "Megadeth"
if bandname == "Megadeth":
    print("無庸置疑,Megadeth 無論在歌曲的編制、樂句的表現與技巧的專精,都勝過其他的鞭擊金屬樂團")
elif bandname == "Metallica":
    print("Metallica 也是四大鞭擊金屬樂團之一。但是最好的是前四張專輯")
elif bandname == "Anthrax":
    print("Anthrax 也是四大鞭擊金屬樂團之一。但是地位不如 Megadeth 與 Metallica")
elif bandname == "Slayer":
    print("Slayer 確實是四大鞭擊金屬樂團之一。但是我對他們不熟")
else:
    print("你輸入的樂團名稱不在四大鞭擊金屬樂團之中")

結果顯示如下:

無庸置疑,Megadeth 無論在歌曲的編制、樂句的表現與技巧的專精,都勝過其他的鞭擊金屬樂團

承上例,我們把第一行的 「bandname = “Megadeth”」改成「bandname = “Anthrax”」結果顯示如下:

Anthrax 也是四大鞭擊金屬樂團之一。但是地位不如 Megadeth 與 Metallica

承上例,我們再把第一行的 「bandname = “Anthrax”」改成「bandname = “Slayer”」結果顯示如下:

Slayer 確實是四大鞭擊金屬樂團之一。但是我對他們不熟

承上例,我們再把第一行的 「bandname = “Slayer”」,將 Slayer 改成隨便一個你知道的樂團名稱,也許結果顯示如下:

你輸入的樂團名稱不在四大鞭擊金屬樂團之中

最新文章

熱門文章