if -- 條件判斷



日常生活中,有時會有這樣的情境 ----

如果存超過 1 萬元,就可以出國旅行

如果就是 if
 
money = 15000

if money>10000:
    print('整理行李')
    print('出國旅行去!')
 
Python 很重視程式的可讀性,所以要求 if 後面要有 「冒號」:,並且,當符合 if 條件時,要執行的指令都要內縮,簡單的記法,就是看到「:」,就要內縮

建議內縮 4 格空白,這也是大多數人採用的方式,這樣,您在觀摹別人的程式碼時,或別人看您的程式碼時、就較不會有不適應的狀況。

 
money = 5000

if money>10000:
    # 因為 money 只有 5000, 不超過 10000, 所以內縮的部份都不會執行
    print('整理行李')
    print('出國旅行去!')

# 只有這行指令會執行, 因為不在內縮的部份
print('程式結束')
 

條件判斷的運算符號有 「>」(大於)、「>=」(大於或等於)、「==」(等於)、「<」(小於)、「<=」(小於或等於)、「!=」(不等於)

當條件判斷後,只有 2 選 1 的結果時,可以加上「else
 
money = 5000

if money>=10000:
    # 因為 money 只有 5000, 所以沒法出國了
    print('整理行李')
    print('YA! 出國旅行去!')
else:
    print('乖乖當肥宅吧...')

print('程式結束')
 

您可以自行練習,改變 money 的 數值,並將「>」、「>=」、「==」、「<」、「<=」、「!=」替換第 4 行指令「if money>=10000:」的運算符號,看看程式會有什麼不同的執行結果。

if 的條件判斷可以有好幾個,例如:

如果存滿 1 萬元,而且天氣晴朗,就可以出國旅行
 
money = 10000
sunny = True

if (money>=10000) and sunny:
    print('整理行李')
    print('出國旅行去!')
else:
    print('乖乖當肥宅吧...')

# 執行結果, 螢幕會顯示
# 整理行李
# 出國旅行去
 
True(注意 T 要大寫) 是另一種資料型態,稱為「布林值」(boolean),代表「」或「肯定的」;相對於 True 的是 「False」,代表的是「」或「否定的」。

布林值的變數就只有 2 種,不是「True」,就是「False

程式碼第 5 行的 「and」(並且) 則是限制 2 個條件判斷都必須符合,才會執行 if: 內的指令,否則就執行 else: 的指令;所以若是您改變 sunny 的值為 False,執行結果就會是在螢幕顯示

乖乖當肥宅吧...

相對於 and 的是「or」(或是) 則是 2 個條件判斷只要有 1 個符合,就執行 if: 內的指令,例如:
 
# 只要身上的錢超過 100 元 或是 天氣晴,就開車去兜風

money = 200
sunny = False
  
if (money>=100) or sunny:
    print('雖然不是晴天,那就開車兜風')
else:
    print('乖乖當肥宅吧...')
 
# 執行結果, 螢幕會顯示
# 雖然不是晴天,那就開車兜風
 


andor 還可以一起混用,當條件判斷很多時,加上括弧 是不錯的做法,也可以提高程式碼的可讀性:
 
# 只要身上的錢超過 100 元,而且 天氣晴 或 車子 還有油,就開車去兜風

money = 200
sunny = False
oil = 3
    
if money>=100 and (sunny or oil>0):    # 括弧內要優先
    print('出去散散心,來趟窮人的小旅行')
else:
    print('乖乖當肥宅吧...')
   
# 執行結果, 螢幕會顯示
# 開車出去散散心,來趟窮人的小旅行

# 說明:
# if: 的括弧內要先運算, oil 的值是 3, 大於 0 沒錯, 
# 雖然 sunny 是 False, 但因為是 or 運算, 只要 2 個有 1 個符合即可
# 所以括弧內運算結果為 True
# 接著再與 money>=100 做 and 運算  →  運算結果為 True
 


not 是將原本的值轉成相反的意思,若原本是 Truenot True 就變成 False
 
money = 200
sunny = False
    
if (money>=100) and (not sunny):    # sunny 原本是 False,被 not 轉換成 True
    print('雖然不是晴天,那就開車兜風')
else:
    print('乖乖當肥宅吧...')
     
# 執行結果, 螢幕會顯示
# 雖然不是晴天,那就開車兜風
 


if: 判斷內還可以再有下一層 if:,例如:
 
money = 15000
sunny = False

if money>=10000:
    print('出國旅行去!')
    if sunny:
        print('享受異國風情')
    else:
        print('關在房間裡')
else:
    print('乖乖當肥宅吧...')

# 執行結果, 螢幕會顯示
# 出國旅行去!
# 關在酒店裡
  
# 說明:
# money 的值是 15000, 超過 10000
# 所以會執行 print('出國旅行去!')
# 接著進行下一層的 if: 判斷
# sunny = False
# 所以執行 else: 下的 print('關在房間裡')
 


if: 還可以做多個條件判斷:
 
score = int(input('請輸入分數:'))

if score==100:
    print('滿分,學霸! 甲組')
elif score>=90:
    print('乙組')
elif score>=80:
    print('丙組')
elif score>=70:
    print('丁組')
elif score>=60:
    print('戊組')
else:
    print('不及格,要加油囉...')

# elif: 就是 else if 的意思
 


if:elif:else: 下若沒有要執行的指令,您必須寫入 pass 以維持 Python 的語法完整性
 
money = 1000

if money>100:
    pass    # 就是跳過、略過的意思
elif money >50:
    pass
else:
    pass
 


完整的 if 條件判斷語法為:
 
if 條件判斷:
    符合條件時要執行的指令
[elif 條件判斷:]
    [符合條件時要執行的指令]
...
...
[else:]
    [全部不符合時要執行的指令]

# [ ] 括號裡的內容表示不是必要的,只在需要時才加入
 





⇑ 目錄 ⇑