轉載原文:https://baijiahao.baidu.com/s?id=1616840043823038731&wfr=spider&for=pc
1、 簡單if-else語句
例1:要求用戶輸入兩個數,計算兩數的和。如果這兩個數的和大於100,則輸出“兩數和大於100”,否則輸出“兩數和小於100”。
程序要求用戶從鍵盤輸入兩個整數,求這兩個整數的和。如果和大於100,用print語句輸出“兩數和大於100”,否則輸出“兩數和小於100”。程序流程圖如下:

- 流程圖用到了判斷框,判斷框用於判斷兩數和結果result的值,並根據判斷情況選擇不同的分支。類似這樣的判斷情況,在程序中應用非常廣泛,需要對條件進行判斷,並根據判斷結果,進入不同的分支程序。這種流程稱為條件分支流程,其語句結構也稱為條件結構。
在Python語言中,條件結構由if—else語句構成,else語句也可以省略。if語句由三部分組成:關鍵字本身,用於判斷結果真假的條件表達式,以及當表達式為真或者非零時執行的代碼塊。else 語句與if語句搭配使用,如果if語句條件表達式的值為真,則執行if 后面的語句塊;如果if語句條件表達式的值為假,則執行else后面的語句塊。
if—else語句語法如下:
- if 條件表達式:
- 語句塊
- else:
- 語句塊
- 在if—else語句結構中,如果只對if語句條件表達式為真的情況進行處理,else語句可以省略。現在,我們已經了解了Python語言if-else結構的語法,下面探討一下如何在條件結構中使用條件表達
- 例如:要測試兩個整數類型的變量值num1和num2是否相等,可以編寫num1 == num2,然后將其放入一個if語句中,如下所示:

下面根據圖1所示的流程圖給出例1的程序代碼。

3. input函數從標准輸入(如鍵盤)接收用戶或設備的輸入,input返回的是字符串類型,程序要求輸入整數,因此計算兩數和時,需要把num1和num2強制轉換為整數。最后再判斷result的值,根據result的值選擇不同的執行路徑。
2、 多重if結構語句
例2:編寫一個程序,根據用戶輸入的考試成績,輸出相應的成績評定信息。成績大於等於90分輸出“優”;成績大於等於80分小於90分輸出“良”;成績大於等於60分小於80分輸出“中”,成績小於60分輸出“差”。
程序的主要功能是對考生的考試成績進行評定,成績評定分成優、良、中、差四個檔次。成績大於等於90分為優,大於等於80分小於90分為良,大於等於60分小於80分為中,成績小於60分為差。用戶輸入考試成績后,程序需要對考試成績進行多次判斷,如果考試成績在90分至100分之間,用print函數輸出“優”;如果考試成績在80分至90分之間,用print函數輸出“良”;如果考試成績在60分至80分之間,用print函數輸出“中”;如果考試成績在60分以下,用print函數輸出“差”。程序流程圖如下:

- 流程圖用到了多個條件判斷,如果條件的值為真,則執行某些操作,否則,進一步進行條件判斷,執行其它操作。流程圖中需要逐級判斷輸入的考試成績在哪個分數段內,並輸出相應的等級。當遇到類似這種情況時,就可使用多重if結構解決。
多重if結構實際上是if-else結構的另一種形式;if-else-if,這種形式也稱為階梯式,當有多個分支選擇時,可采用多重if結構。
多重if結構語法如下:
- if 條件表達式1:
- 語句塊
- elif 條件表達式2:
- 語句塊
- elif 條件表達式3:
- 語句塊
- ……
- else:
2. 語句塊多重if結構從上到下依次對條件進行判斷,當條件滿足時就執行該條件后面的語句,並跳過其它的條件判斷;若沒有條件滿足,則執行最后的else語句塊,如果沒有else語句塊,則直接執行該結構后面的語句。
下面根據圖2所示的流程圖給出例2的程序代碼。

3. 程序使用了if-elif-else多重條件結構,每個條件表達式使用了邏輯與運算符,用於連接兩個子表達式,只有兩個子表達式都滿足條件時,整個表達式的值才為真。
3、 嵌套if語句
- 前面介紹了簡單if和多重if語句,可以解決很多條件判斷問題。但還存在一種嵌套的判斷情況,即只有當前提條件滿足時,才判斷后續條件是否滿足。例如,如果星期日天氣晴朗,且能買到去青島的高鐵票就去青島玩,否則就在家休息。在這個例子中,第一條件是天氣晴朗,在天氣滿足的條件下,再判斷第二條件,是否能買到去青島的高鐵票,兩個條件全部滿足就去青島玩,否則就在家休息。
- 嵌套if語句是指在已有if語句塊中插入另一個if語句塊,實現條件的嵌套判斷,if語句塊可以多層嵌套。嵌套語句語法結構如下:
- if 前提條件:
- if 后續條件:
- 語句塊
- else:
- 語句塊
- else:
- 語句塊嵌套if語句在Java、C等編程語言中,編寫不規范時,有時會引發一些疑問,下面是一個Java語言的例子:

2. 按條件語句的語法形式,上面的例子似乎有兩種可能的解釋,第一種理解:外層的if是一個沒有else部分的條件語句,最后的else部分屬於內層的if語句;第二種理解:內層if是一個不帶else部分的條件語句,最后的else屬於外層的if條件語句。
為了避免這種二義性,Java語言規定,每個else部分總是屬於前面最近的那個缺少對應的else部分if語句。根據這一規定,上面的例子第一種解釋是正確的,第二種解釋是不正確的。
Python不會出現這樣的疑問,Python使用強制縮進使代碼正確對齊,讓程序員來決定else屬於哪一個if,從而減少了不確定性。例如,上面的例子代碼按照第一種理解可以這么寫:

Python代碼可以很明顯看出,else是和內層if匹配的。
例3:編寫一個程序,要求用戶輸入兩個整數,如果輸入的兩個整數不相等,輸出最大的數。
程序的主要功能是練習嵌套if語句的使用,要求對用戶輸入的兩個整數首先判斷是否相等,在兩個數相等的條件下,再判斷哪個數大,並輸出較大的數。程序流程圖如下:

- 流程圖用到了嵌套條件判斷。首先判斷num1和num2是否相等,如果相等,程序不做任何處理並結束程序;如果不相等,再判斷num1是否大於num2,若條件滿足輸出num1,程序結束,否則輸出num2,程序結束。
下面根據圖3流程圖給出例3的程序代碼。

2. 代碼使用了嵌套if語句實現了程序任務要求,input獲取用戶輸入后,返回的是字符串,需要把字符串強制轉換為整數。
課程小結
(1)在Python語言中,if語句由三部分組成:關鍵字本身,用於判斷結果真假的條件表達式,以及當表達式為真或者非零時執行的代碼塊。else 語句與if語句搭配使用,如果if語句條件表達式的值為真,則執行if 后面的語句塊;如果if語句條件表達式的值為假,則執行else后面的語句塊。
(2)多重if結構語句實際上是if-else結構的另一種形式;if-else-if,這種形式也稱為階梯式,由多個條件判斷語句組成,如果條件的值為真,則執行某些操作,否則,進一步進行條件判斷,執行其它操作。
(3)嵌套if語句是指在已有if語句塊中插入另一個if語句塊,實現條件的嵌套判斷,if語句塊可以多層嵌套。