官术网_书友最值得收藏!

2.4 選擇結構

對癥下藥,意思是醫生針對患者病癥用藥,指要針對事物存在的問題采取有效的措施。選擇結構就是針對不同的條件做出不同的選擇,從而執行不同的任務。

某游戲廳有一個投籃游戲,該游戲的成績顯示在一塊屏幕上。屏幕顯示處理方式如圖2-5所示,具體如下:

● 圖2-5(a)屬于單分支結構。在單分支結構中,當條件成立時,去做某件事情;當條件不成立時,什么都不做。對于本例為,若投籃成績大于90分,則在屏幕上顯示“A級”;否則,什么都不顯示。

● 圖2-5(b)屬于雙分支結構。在雙分支中結構,當條件成立時,去做某件事情;當條件不成立時,去做另外一件事情。對于本例為,若投籃成績大于90分,則在屏幕上顯示“A級”;否則,在屏幕上顯示“加油”。

● 圖2-5(c)屬于多分支結構。在多分支結構中,逐個判斷是否滿足某個條件,并根據判斷結果執行對應的語句。對于本例為

? 先判斷投籃成績是否大于90分,若大于90分,則在屏幕上顯示“A級”;否則,繼續后續判斷。

? 然后判斷投籃成績是否大于80分,若大于80分,則在屏幕上顯示“B級”;否則,繼續后續判斷。

? 然后判斷投籃成績是否大于70分,若大于70分,則在屏幕上顯示“C級”;否則,繼續后續判斷。

? 然后判斷投籃成績是否大于60分,若大于60分,則在屏幕上顯示“D級”;否則,在屏幕上顯示“加油”。

在多分支結構中,可以一直不斷地縮小判斷范圍進行后續判斷。

圖2-5 屏幕顯示處理方式

1.單分支

單分支結構僅在條件成立時執行操作,當條件不成立時什么都不做,其結構為

【例2.11】單分支結構實現投籃成績判斷。

運行上述程序,會提示輸入成績,當輸入的數值大于90時,輸出結果為

如果輸入的數值小于或等于90,那么程序沒有任何輸出。

這里涉及如下兩個新的知識點:

● 函數input():用來接收用戶的輸入。

● 函數int():用來完成類型的轉換。從函數input()讀取的數據是字符串,不能直接與數值比較大小,要使用函數int()將其轉換為整型。

【注意】在Python中,不使用大括號來表示語句段的開始和結束,而使用縮進來表示語句的開始和結束。例如,當條件成立時,若要執行的語句有很多行,則直接將這些語句進行相同的縮進。

這樣的方式很方便,但是需要額外關注代碼的縮進。初學者在使用Python時,經常會因為縮進使用不當而出錯,務必恰當地使用縮進。

2.雙分支

在雙分支結構中,當條件成立時,去做某件事情;當條件不成立時,去做另外一件事情,其結構為

【例2.12】雙分支結構實現投籃成績判斷。

運行上述程序,會提示輸入成績,若輸入的數值大于90,則輸出“A級”;若輸入的數值小于或等于90,則輸出“加油!”。

3.多分支

多分支結構針對多個條件進行判斷,根據判斷結果執行對應操作。針對投籃游戲的坐標示意圖如圖2-6所示。

圖2-6 針對投籃游戲的坐標示意圖

這里需要注意的是,第二個判斷條件“大于80分”,是在第一個判斷條件“大于90分”不成立的情況下的條件,其范圍是(80,90]。其他條件類似,都是上一次判斷條件不成立情況下的判斷條件。

多分支結構中使用“if...elif...else”結構,可以包含多個“elif”,其結構為

【例2.13】多分支結構實現投籃成績判斷。

運行上述程序,根據輸入不同,結果如下:

● 若輸入的數值大于90,則輸出“A級”。

● 若輸入的數值為(80,90],則輸出“B級”。

● 若輸入的數值為(70,80],則輸出“C級”。

● 若輸入的數值為[60,70],則輸出“D級”。

● 若輸入的數值小于60,則輸出“加油”。

4.內聯if

可以將if語句簡單地寫在一行內。此時的語法格式為

上述語句的規則是

● 當條件成立時,將語句A作為返回值。

● 當條件不成立時,將該語句B作為返回值。

內聯if語句結構如圖2-7所示。

圖2-7 內聯if語句結構

【例2.14】使用內聯if語句計算兩個數值的最大值。

運行上述程序,根據不同輸入,會出現不同結果:

● 當輸入的值滿足a>b時,big=a。例如,輸入a=6、b=3,則big=a,輸出為“大數是:6”。

● 當輸入的值不滿足a>b時,big=b。例如,輸入a=6、b=9,則big=b,輸出為“大數是:9”。

5.條件語句

條件語句通常是由比較語句構成的,返回一個邏輯值(True或False)。使用比較符號可以構成比較語句,常用的比較符號如表2-2所示。

表2-2 常用的比較符號

在需要對多個條件進行組合時,可以使用邏輯符號。常用的邏輯符號如表2-3所示。

表2-3 常用的邏輯符號

主站蜘蛛池模板: 余江县| 安阳县| 深州市| 清河县| 信宜市| 凭祥市| 吴忠市| 罗田县| 绥中县| 阿巴嘎旗| 汾阳市| 卢龙县| 赫章县| 兴仁县| 固镇县| 锡林郭勒盟| 浦北县| 剑河县| 建湖县| 长顺县| 张掖市| 漳州市| 江油市| 裕民县| 泰州市| 万山特区| 交城县| 泗阳县| 双峰县| 太白县| 体育| 涟源市| 青河县| 库尔勒市| 三台县| 桂平市| 乌兰县| 平果县| 保德县| 团风县| 孝昌县|