Python 中的條件 if 語句。 語法、else/elif 塊、示例

在學習編程的過程中,經常需要創建一些在現實生活中不太容易應用的程序。 畢竟,有時您只能在特定條件下遵循指示。 為了能夠在程序中實現這一點,所有語言都有控制語句。 在它們的幫助下,您可以控制代碼執行流程、創建循環或僅在特定條件為真時執行特定操作。

今天我們將討論 if 語句,它檢查當前情況是否符合特定條件,並根據這些信息做出進一步行動的決定。

控制語句的類型

通常,if 不是控製程序流程的唯一語句。 他本人也可以成為更大的運營商鏈中的一員。

還有控制其執行過程的循環和語句。 今天我們只講條件運算符和它可以參與的鏈。

在編程中,有分支這樣的東西。 正是這意味著僅當某個條件為真時才執行的命令序列。 標準本身可能不同:

  1. 變量與某個值的相等性。
  2. 執行特定操作。
  3. 應用程序狀態(折疊與否)。

頻譜可以大得多。 條件語句有幾種類型:

  1. 有一個分支。 也就是說,執行單個檢查,結果是執行某些操作。
  2. 有兩個或多個分支。 如果標準 1 為真,則檢查標準 2。如果為真,則檢查 3。因此,根據需要執行盡可能多的檢查。
  3. 有幾個條件。 這裡的一切都很簡單。 解釋器檢查多個條件或其中之一。

如果聲明

if 語句的結構在所有語言中都是相似的。 但是,在 Python 中,它的語法與所有其他語法有些不同:

如果條件:

    <входящее выражение 1>

    <входящее выражение 2>

<не входящее выражение>

首先,聲明運算符本身,然後寫入開始工作的條件。 條件可以為真或假。

接下來是一個帶有命令的塊。 如果它立即遵循要滿足的標準,則相應的命令序列稱為 if 塊。 您可以在其中使用任意數量的命令。

注意! 所有 if 塊命令中的縮進必須是相同的大小。 塊邊界由縮進決定。 

根據語言文檔,縮進是 4 個空格。 

這個運算符是如何工作的? 當解釋器看到 if 詞時,它會立即根據用戶指定的條件檢查表達式。 如果是這種情況,那麼他就會開始尋找指示並遵循它們。 否則,將跳過該塊中的所有命令。

如果條件後的語句沒有縮進,則不將其視為 if 塊。 在我們的情況下,這條線是 . 因此,無論檢查結果如何,都會執行此行。

這是此運算符如何工作的示例的代碼片段。

number = int(input(“輸入一個數字:”))

如果數字 > 10:

    print("數字大於 10")

該程序提示用戶輸入一個數字並檢查它是否大於 10。如果是,則返回適當的信息。 例如,如果用戶輸入數字 5,那麼程序將簡單地結束,僅此而已。

但是如果你指定數字100,那麼解釋器會理解為超過XNUMX,並報告它。

注意! 在我們的例子中,如果條件為假,程序就會停止,因為在指令之後沒有給出任何命令。

上面的代碼中只有一個命令。 但還有更多。 唯一的要求是縮進。

現在讓我們分析一下這個命令序列。

number = int(input(“寫一個數字:”))

如果數字 > 10:

    打印(“第一行”)

    打印(“第二行”)

    打印(“第三行”)

print(“執行的行,不管輸入的數字”)

print(“結束申請”)

嘗試猜測輸入值 2、5、10、15、50 會輸出什麼。

如您所見,如果用戶輸入的數字大於十,則輸出三行 + 一行帶有文本“每次運行……”和一行“結束”,如果小於十,則僅輸出一行,帶有不同的文本。 如果為真,則僅執行第 3,4,5、XNUMX、XNUMX 行。 但是,無論用戶指定什麼數字,最後兩行都將被寫入。

如果直接在控制台中使用語句,結果會有所不同。 如果在指定驗證標准後按 Enter,解釋器會立即打開多行模式。

假設我們編寫了以下命令序列。

>>>

>>> n = 100

>>> 如果 n > 10:

...

之後,我們將看到 >>> 已被省略號替換。 這意味著啟用了多行輸入模式。 簡單來說,如果你按下回車,你就會被轉入第二階段指令的輸入。 

為了退出這個塊,你需要在塊中再添加一個構造 if.

>>>

>>> n = 100

>>> 如果 n > 10:

… 打印(«nv 10»)

...

如果條件不成立,則程序結束。 這是一個問題,因為用戶可能認為這樣的程序由於失敗而關閉。 因此,有必要向用戶提供反饋。 為此,使用了一個鏈接 如果別的.

表達式運算符 如果別的

此運算符允許您實現鏈接:如果表達式匹配某個規則,則執行這些操作,如果不匹配,則執行其他操作。 也就是說,它允許您將程序的流程分成兩條路。 語法很直觀:

如果條件:

    # 如果是塊

    聲明 1

    聲明 2

    等

其他:

    # 其他塊

    聲明 3

    聲明 4

    依此類推:

讓我們解釋一下這個運算符是如何工作的。 一、標準語句在線程中執行 紅豆杉, 檢查是否匹配 條件 “對或錯”。 進一步的操作取決於檢查的結果。 如果為真,則直接執行條件後面的指令序列中的指令。 紅豆杉, 如果它是假的,那麼 其他

這樣您就可以處理錯誤。 例如,用戶需要輸入半徑。 顯然,它只能是一個帶加號的數字,或者它是一個空值。 如果它小於 0,那麼您需要發出一條消息,要求您輸入一個正數。 

這是實現此任務的代碼。 但是這裡有一個錯誤。 試著猜猜是哪一個。 

radius = int(input(“輸入半徑:”))

如果半徑 >= 0:

    print("周長 = ", 2 * 3.14 * 半徑)

    print(“面積 =”, 3.14 * 半徑 ** 2)

    其他:

        print("請輸入正數")

縮進不匹配錯誤。 如果與其他 必須位於沒有它們或具有相同數量的它們(取決於它們是否嵌套)。

讓我們給出另一個用例(操作員對齊後一切都會正確)——一個檢查密碼的應用程序元素。

密碼=輸入(“輸入密碼:”)

如果密碼 == «sshh»:

    打印(“歡迎”)

其他:

    打印(“拒絕訪問”)

如果密碼是 sshh,此指令會進一步跳過此人。 如果有任何其他字母和數字組合,則會顯示消息“訪問被拒絕”。

語句表達式 if-elif-else

只有當多個條件不成立時,才會執行塊中的語句。 其他. 這個表達式是這樣工作的。

如果條件_1:

    # 如果是塊

    聲明

    聲明

    更多聲明

elif 條件_2:

    # 第一個 elif 塊

    聲明

    聲明

    更多聲明

elif 條件_3:

    # 第二個 elif 塊

    聲明

    聲明

    更多聲明

...

其他

    聲明

    聲明

    更多聲明

您可以指定任意數量的附加條件.

嵌套語句

實現多個條件的另一種方法是在 if 塊中插入額外的條件檢查。

操作者 if 在另一個條件塊內

gre_score = int(input(“輸入您當前的信用額度”))

per_grad = int(input(“請輸入您的信用等級:”))

如果 per_grad > 70:

    # 外部 if 塊

        如果 gre_score > 150:

            # 內部 if 塊

    print(“恭喜,你收到了一筆貸款”)

其他:

    print(“對不起,您沒有資格獲得貸款”)

該程序會執行信用評級檢查。 如果小於 70,程序會報告用戶沒有資格獲得信用。 如果大於,則執行第二次檢查以查看當前信用額度是否大於 150。如果是,則顯示一條消息,表明貸款已發放。

如果兩個值都為假,則顯示一條消息,說明用戶沒有獲得貸款的可能性。 

現在讓我們稍微修改一下那個程序。

gre_score = int(input(“輸入電流限制:”))

per_grad = int(input(“輸入信用評分:”))

如果 per_grad > 70:

    如果 gre_score > 150:

        print(“恭喜,你收到了一筆貸款”)

    其他:

        print("您的信用額度低")

其他:

    print(“對不起,您沒有資格獲得信用”)

代碼本身非常相似,但是嵌套了 if 還提供了一種算法,以防它的條件被證明是錯誤的。 即卡額度不足,但信用記錄良好,顯示“您的信用評分低”。

條件中的 if-else 語句 其他

讓我們編寫另一個程序,根據考試成績確定學生的成績。

score = int(input(“輸入你的分數:”))

如果分數 >= 90:

    print(“太好了!你的成績是 A”)

其他:

    如果分數 >= 80:

print(“太好了!你的成績是B”)

    其他:

如果分數 >= 70:

    print(“好!你的成績是C”)

其他:

    如果分數 >= 60:

print(“你的成績是 D。值得重複材料。”)

    其他:

print(“你考試不及格”)

應用程序首先檢查分數是否大於或等於 90。如果是,則返回 A 級。 如果此條件為假,則執行後續檢查。 乍一看,我們看到算法幾乎相同。 所以,而不是檢查里面 其他 更好地使用組合 如果-elif-else.

所以運營商 if 執行一個非常重要的功能——它確保只有在需要時才執行某些代碼。 沒有它就無法想像編程,因為即使是最簡單的算法也需要分叉,例如“如果你向左走,你會找到它,如果你向右走,那麼你需要做這個和那個。”

發表評論