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('乖乖當肥宅吧...')
# 執行結果, 螢幕會顯示
# 雖然不是晴天,那就開車兜風
and 和
or 還可以一起混用,當條件判斷很多時,
加上括弧 是不錯的做法,也可以提高程式碼的可讀性:
# 只要身上的錢超過 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 是將原本的值轉成相反的意思,若原本是
True,
not 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:]
[全部不符合時要執行的指令]
# [ ] 括號裡的內容表示不是必要的,只在需要時才加入