[Py 百日馬 Day 3] 用 if / elif / else 見機行事


Posted by Laihan on 2022-01-21

現實生活往往都是複雜的,會針對不同情況做出不同反應,在 Python 中我們可以使用 ifelseelif 來因應不同的情況。

if 敘述

如果 (if) 某條件成立 (condition = True),就做某件事 (statement),不沒成立就不做事,寫法如

if condition:
    statement

來舉個例子:當分數超過六十分就印出 "恭喜及格"

if score >= 60:
    print('恭喜及格!')

這裡要特別注意縮排,Python 是用縮排來區分程式區塊,若縮排錯誤會得到 IndentationError。縮排通常為四個空白鍵或一個 Tab 鍵,一般來說四個空白鍵 = 一個 Tab 鍵,但並非絕對,這可能會因為編輯器或開發環境的設定而有所不同,導致縮排混亂,撰寫程式碼時要注意統一用一種縮排方式,若混用可能會報錯。

if - else 敘述

繼續用上面的例子擴充,若分數不到六十分印出 "不及格,打屁屁",如果只用 if 判斷的話要寫成

if score >= 60:
    print('恭喜及格!')
if score < 60:
    print('不及格,打屁屁')

但你有更好的寫法 ─ 使用 else 去執行當條件不成立時要做的事

if score >= 60:
    print('恭喜及格!')
else:
    print('不及格,打屁屁')

if - elif - else 敘述

當你條件有一個以上要寫該怎麼辦,繼續用上面的例子來說明:分數超過六十分就印出 "恭喜及格" 、分數不到六十分印出 "請補考" 、分數不到四十分印出 "請重修" ,如果只用 if 判斷的話要寫成

if score >= 60:
    print('恭喜及格!')
if score < 60 and score >= 40:
    print('請補考')
if score < 40:
    print('請重修')

有沒有覺得有點麻煩,而且這種寫法即便條件已在第一個 if 成立,但程式碼還是續繼往下白做工,總共判斷了三次,以這種案例來說就是 elifelse 攜手出馬的時刻了,其中 elif 可以同時出現一個以上

if score >= 60:
    print('恭喜及格!')
elif score >= 40:
    print('請補考')
else:
    print('請重修')

運算子又來了

Day 2 中有提及兩種運算子,今天來介紹另外兩種,剛剛有用到的運算子

邏輯運算子(Logical Operators)

用來組合條件敘述句

運算子 敘述 用法
and 當敘述句皆為真時,回傳 True x < 60 and x >= 40
or 當敘述句有一個為真時,回傳 True x == 0 or x == 100
not 反轉敘述句的結果,當敘述句為真時,回傳 False not (x == 0 or x == 100 )

比較運算子(Comparison Operators)

用來比較兩個值

運算子 敘述 用法
== 等於 x == y
!= 不等於 x != y
> 大於 x > y
< 小於 x < y
>= 大於等於 x >= y
<= 小於等於 x <= y

if (- elif) - else 巢起來

有沒有覺得 elif 似曾相似呢?其實他是 if + else 的縮寫,把上面的 "恭喜及格" 、 "請補考" 、 "請重修" 的例子拿來用巢狀結構改寫,這裡一樣要注意縮排的使用,縮排的層級會影響程式碼的邏輯

if score >= 60:
    print('恭喜及格!')
    if score == 100:
        print('資優生是你!')
else:
    if score >= 40:
        print('請補考')
    else:
        print('請重修')

這裡一開始先用是否合格做分界點,合格才去判斷是否滿分,滿分才繼續印字,沒滿分就不做事情;不合格的情況要判斷可以補考還是要重修。


#Python







Related Posts

The introduction and difference between class component and function component in React

The introduction and difference between class component and function component in React

gulp

gulp

搭配Windows工作排程, 讓Python自動執行

搭配Windows工作排程, 讓Python自動執行


Comments