在學習編程的過程中,經常需要創建一些在現實生活中不太容易應用的程序。 畢竟,有時您只能在特定條件下遵循指示。 為了能夠在程序中實現這一點,所有語言都有控制語句。 在它們的幫助下,您可以控制代碼執行流程、創建循環或僅在特定條件為真時執行特定操作。
今天我們將討論 if 語句,它檢查當前情況是否符合特定條件,並根據這些信息做出進一步行動的決定。
控制語句的類型
通常,if 不是控製程序流程的唯一語句。 他本人也可以成為更大的運營商鏈中的一員。
還有控制其執行過程的循環和語句。 今天我們只講條件運算符和它可以參與的鏈。
在編程中,有分支這樣的東西。 正是這意味著僅當某個條件為真時才執行的命令序列。 標準本身可能不同:
- 變量與某個值的相等性。
- 執行特定操作。
- 應用程序狀態(折疊與否)。
頻譜可以大得多。 條件語句有幾種類型:
- 有一個分支。 也就是說,執行單個檢查,結果是執行某些操作。
- 有兩個或多個分支。 如果標準 1 為真,則檢查標準 2。如果為真,則檢查 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 執行一個非常重要的功能——它確保只有在需要時才執行某些代碼。 沒有它就無法想像編程,因為即使是最簡單的算法也需要分叉,例如“如果你向左走,你會找到它,如果你向右走,那麼你需要做這個和那個。”