if 條件(選擇結構)
2019/07/15 謝碧景(c)編製更新
學習目標
一、Python程式碼縮排格式
(一)縮排格式
如下左圖,Python程式碼以縮排(indent)方式表示一組相同的程式區塊,是以 : 冒號及縮排格式顯示,建議使用4個空白鍵產生縮排。
如下右圖,大部分程式語言如:C、C++、Java等,都以一對大括號 { } 框住程式區塊。
Python 程式碼縮排格式
if (條件式) :
程式區塊
下一列程式碼敘述
C++、C、Java等程式碼格式
if (條件式) {
程式區塊(成立敘述區塊);
}
(二)請勿混用空白鍵和Tab鍵
注意:4個空白鍵 或 Tab鍵 在不同編輯器讀取時,可能會有不同的效果。
若使用 Spyder 或 Jupyter NoteBook 編輯器,會將Tab鍵自動轉換為4個空白鍵,以避免執行中產生警告或錯誤等問題。
二、單向選擇 (if...)
(一)語法
當條件式為 True(真)時,就執行【縮排格式】的成立敘述『程式區塊』,當條件式為 False(假)時,則跳開 成立敘述程式區塊,繼續往下執行。
成立敘述的程式區塊可為一列或多列,若僅一列敘述,可一列編撰『 if (條件式): 程式碼 』。
例如下方條件判斷 if (sc>=60) : print("成績及格")(條件式) 的括弧可省略,即『 if 條件式: 』亦可。
if (條件式):
程式區塊 #一列或多列敘述
下一列程式碼敘述
sc=eval(input("輸入成績:"))
if sc>=60:
print("成績及格")
print("程式結束")
執行2次結果:
(二)單向選擇流程圖
三、雙向選擇 (if...else)
(一)語法
當條件式為 True(真)時,就執行成立敘述區塊,當條件式為 False(假)時,則執行不成立敘述區塊。
敘述 區塊可為一列或多列。
if (條件式) :
成立敘述程式區塊 #一列或多列
else :
不成立敘述程式區塊 #一列或多列
sc=int(input("輸入成績:"))
if(sc>=60):
print("及格")
else:
print("不及格")
執行2次結果:
(二)雙向選擇流程圖
四、多向選擇 (if...elif...else)
(一)語法
在條件式之內可以包含條件式,稱為巢狀條件式。(以三個條件式為例)
if (條件式1):
程式區塊1 #一列或多列敘述
elif (條件式2):
程式區塊2 #一列或多列敘述
elif (條件式3):
程式區塊3 #一列或多列敘述
else:
else程式區塊 #一列或多列敘述
例1:輸入兩整數(非0),再輸入一個運算子+-*/,請輸出兩數運算結果。
例2:判斷等級。
(二)多向選擇流程圖
*參閱:流程控制。中華開放教育平台→Python程式設計入門
§實作練習
執行1結果:
輸入一正整數,判斷此數為奇數或偶數。
請輸入此數:55
55為奇數
執行2結果:
輸入一正整數,判斷此數為奇數或偶數。
請輸入此數:56
56為偶數
二、輸入兩正整數,判斷此二數是否為一個奇數與一個偶數。【流程圖:雙向、多向】
【提示:and(且)、or(或)→邏輯運算子】(檔名:if-ex2.py)
執行1結果:
判斷此二數是否為一個奇數與一個偶數。
請輸入此二數:55 56
55,56恰為一個奇數與一個偶數
執行2結果:
判斷此二數是否為一個奇數與一個偶數。
請輸入此二數:55 55
55,55不為一個奇數與一個偶數
三、三角形的三邊長一定滿足任兩邊邊長和大於第三邊。輸入三根木條,長度分別為a、b、c時,這三根木條能不能拼成一個三角形。(檔名:if-ex3.py)
【提示:如果 ...(條件1) 且 ...(條件2) 且 ...(條件3),則這三根木條能組成三角形。條件參閱:邏輯運算子】例:5 3 4(Yes)、3 5 3(Yes)、4 7 3(No)
四、 輸入一個整數,請判斷這個整數為三位數整數(請考慮100~999 與 -100~-999 兩種狀況)。
【提示:and(且)、or(或)】(檔名:if-ex4.py)
執行1結果:
判斷一個輸入的數字是否為三位數整數
請輸入此數字=315
315為三位數整數
執行3結果:
判斷一個輸入的數字是否為三位數整數
請輸入此數字=-325
-325為三位數整數
執行2結果:
判斷一個輸入的數字是否為三位數整數
請輸入此數字=55
55不為三位數整數
執行4結果:
判斷一個輸入的數字是否為三位數整數
請輸入此數字=-7
-7不為三位數整數
五、輸入身高及體重,求個人BMI值(輸出:請四捨五入至小數點下2位)?並判斷 BMI 標準與否?【流程圖】
【提示1:BMI=體重/(身高*身高),身高以公尺(M)為單位,體重以公斤(KG)為單位 。】(檔名:if-ex5.py)
BMI<18.5 ,請輸出“體重過輕”。
18.5≦BMI≦23 ,請輸出“標準體重”。
23<BMI<25 ,請輸出“體重過重”。
BMI≧25 ,請輸出“肥胖家族”。
執行1結果:
計算BMI,並判斷BMI是否標準。
請輸入身高(M):1.75
請輸入體重(Kg):70
你的身高為175公分 體重為70公斤 BMI=22.86
標準體重
執行2結果:
計算BMI,並判斷BMI是否標準。
請輸入身高(M):1.8
請輸入體重(Kg):120
你的身高為180公分 體重為120公斤 BMI=37.04
肥胖家族
六、學校上課時間為 7:30 到 17:00 (24小時制)。輸入某時間,請判斷是上學時間(請輸出「At School」)或放學時間(請輸出「Off School」)。(檔名:if-ex6.py) 【摘自:d066:上學去吧!。ZeroJudge】