Python學習筆記:條件語句if、elif與else

2021-02-14 泰迪學院

本專欄針對剛開始學習Python的小白開放,文章內容引用教材,均由泰迪學院與機械工業出版社共同策劃,校企聯合編寫,目前800餘所高校正在使用,為正版教材。請放心食用~



條件語句的運行邏輯為:如果條件被滿足(返回真值),可以做某件事情;如果條件不滿足(返回假值),就做另一件事情,或什麼也不做。

通過圖1,可以對條件語句的運行機製作簡單的了解。虛線框內是一個選擇結構,此結構中包含一個判斷條件和兩條執行語句,以及連接各部分的流向線。根據判斷條件(布爾表達式)返回值的情況,程序將選擇執行語句1或語句2。

 

圖 1條件結構

 

      在Python中,實現選擇結構最普遍的工具是if語句。if語句中包含三種條件判斷句式,即if、elif和else。其中,if與elif部分都包含判斷條件,當判斷條件都不成立時,程序才能執行else部分的代碼。

if語句最基礎的形式是if-else,其基本語法格式如下。

if-else語句常用的參數及說明如表 1所示。

表 1 if-else語句常用的參數及說明

參數

說明

條件表達式

接受布爾表達式。表示判斷條件是否成立。無默認值

操作語句

接受操作語句。表示執行一段代碼。無默認值

if-else語句執行時,程序首先判斷if部分條件的真假。如果條件表達式返回真值,則執行操作語句1;如果返回假值,則執行操作語句2。

if-else語句的形式很簡單,通過條件判斷的結果即可決定下一步的執行方向,具有兩條分支。以編寫一個帳戶密碼登錄界面為例,介紹該語句的使用,如代碼 1所示。

代碼1 if-else語句實現登錄界面




In[1]:

name = input ('請輸入用戶名:')

password = input ('請輸入密碼:')

if name == "Lucy" and password == "123456":

    print ('****登錄成功,歡迎!*****')

else:

    print ('您的輸入有誤,登錄失敗!')





Out[1]:

請輸入用戶名:Lucy

請輸入密碼:123

您的輸入有誤,登錄失敗!




In[2]:

name = input ('請輸入用戶名:')

password = input ('請輸入密碼:')

if name == "Lucy" and password == "123456":

    print ('****登錄成功,歡迎!*****')

else:

    print ('您的輸入有誤,登錄失敗!')





Out[2]:

請輸入用戶名:Lucy

請輸入密碼:123456

****登錄成功,歡迎!*****





在代碼1中,使用input函數以支持交互式的輸入,並在函數括號內插入文字進行了輸入提示,增強了登錄界面的人性化。在if部分的條件判斷式中,使用and運算符進行且運算,只有帳戶和密碼都輸入正確時才能成功登錄,從而增加了安全性。

if-else語句可以縮減為單行形式,其基本語法格式如下。

操作語句1 if 條件表達式 else 操作語句2

if-else語句單行形式語法格式中的參數說明與表1一致。如果條件表達式返回的結果為真,則執行if前面的操作語句1,否則執行else後面的操作語句2。

if-else語句使用單行形式的目的主要在於增加代碼的簡潔性,其基本使用方法如代碼2所示。

代碼2 if-else語句的單行形式




In[3]:

num1, num2 = 11, 90

print('num1加num2為百分數') if 1000 > num1 + num2 >100 else

        print('num1加num2不為百分數')





Out[3]:

num1加num2為百分數





if-else語句有明顯的缺陷,即只能實現兩條分支。實際工作中需要用到的條件分支數目可能難以想像,擴展if語句的分支需要用到elif句式。elif是「else if」的縮寫,即「下一條件是否成立?」。使用elif有簡潔,減少過分縮排的效果。將elif代碼塊放在if和else之間,就組成了if-elif-else語句。理論上,if語句中的elif可以無限多。if-elif-else語句與if-else語句其實是等價的,後者相當於前者中elif個數為0或不執行的情況。由於if-elif-else語句提供更多條件分支,因此更被普遍使用,其基本語法格式如下。

if 條件表達式1:

操作語句1

elif 條件表達式2:

操作語句2

else:

操作語句3

if-elif-else語句語法格式中的參數與表1一致。該語句執行時,按照從上到下的順序,依次檢查每個條件表達式返回值的情況,任何一個條件表達式返回真值,就執行該表達式下面的操作語句。若所有條件表達式都返回假值,則執行else下面的操作語句。

if-elif-else語句相對於if-else語句優勢明顯,可以實現更為複雜的功能。使用if-elif-else語句實現年齡段的判斷,如代碼3所示。

代碼3使用if-elif-else語句實現年齡段的判斷




In[4]:

age = input('請輸入您的年齡:')

age = int(age)

if age < 18:

    print('未成年人!')

elif age >= 18 and age <= 25:

    print('青年人!')

elif age > 25 and age <= 60:

    print('中年人!')

else:

    print('老年人!')





Out[4]:

請輸入您的年齡: 20

青年人!





代碼3通過比較運算符實現了年齡段劃分,並能區分年齡段界限,避免邏輯出錯。這裡需要注意,input函數將接收的任何數據類型都默認為str,如果不在該代碼中插入轉換接收數據類型的語句,程序將無法執行。這是因為,接收的年齡數據會被用於和後續的年齡數值比較,而number與str是無法比較的。

需要說明,if語句還有一種形式是if-if-else,這一形式中的if可以有多個,從而實現多分枝。與if-elif-else語句相比,差異不僅僅存在於形式上,性能也同樣有分別,使用多個if的效率更低,它實際上是多重if語句。

if語句支持嵌套,即在一個if語句中嵌入另一個if語句,從而構成不同層次的選擇結構。嵌套的意義在於,實現多層選擇結構。使用嵌套對條件語句的功能有升華作用,這與elif是相似的,elif將有限的條件分支擴展,嵌套則提供了建立多層選擇結構的工具,兩者分別在不同的維度上提升if語句的功能性。使用嵌套需要以不同的縮進長度劃分代碼結構的層次,因此嵌套時要特別注意縮進的規範性。

嵌套選擇結構具有很廣的應用場景,以下給出一個例子。假設系統中存儲了五個用戶的身份信息,分別是:來自英國的Tom,35歲;來自法國的Frank,35歲;來自德國的Bob,35歲;來自澳大利亞的Washington,51歲;來自南非的Jane,21歲。設計一個程序,詢問用戶的部分信息,在對方不說出自己名字的情況下識別其身份,如代碼4所示。

代碼4 嵌套if-elif-else語句




In[5]:

age = input('請輸入你的年齡:')

age = int(age)

if age == 35:

    nation = input('請輸入你的國籍:')

    if nation == '英國':

        print('你是Tom! ')

    elif (nation == '法國'):

        print('你是Frank! ')

    else:

        print('你是Bob! ')

elif age == 21:

   print('你是Jane,來自南非! ')

elif age == 51:

   print('你是Washington,來自澳大利亞! ')

else:

   print('請輸入正確年齡值! ')





Out[5]:

請輸入你的年齡:35

請輸入你的國籍:法國

你是Frank!





從代碼4可以看到,該程序具有兩層選擇結構。第一層用於詢問年齡,程序通過接收的年齡,可以判斷輸入者是Jane、Washington或其他3個同齡人人中的一人;若收到的值不在這五人年齡範圍中,則提示輸入出錯;若收到的值是3個同齡人的歲數,則進入下一層選擇結構,即詢問國籍;通過詢問國籍,程序可以準確報出輸入者的信息。

使用if語句時,需要注意以下幾點。

(1)條件判斷語句應儘量簡單,若語句複雜則應當將運算先放到一個變量中。

(2)Python的條件語句中允許常用的數值比較運算(==,!=,>,>=,<,<=)。

(3)Python允許無限次if語句嵌套,但實際編程中如果必須用到3到4級嵌套,建議考慮用其他方法編寫代碼,嵌套超過兩層會使程序的運行效率大打折扣。

如果你get到了今天的知識~別忘了關注、轉發、點讚、在看哦~

相關焦點

  • 魅力python——if-elif-else語句
    小夥伴們大家好,今天我們一起來學習python的條件判斷——if語句。計算機能自動完成許多工作,整個過程不需要人為的參與,幹涉計算機的工作。自動化的發展,解放了人類的雙手,提高了生產力,提高了人類的生活質量。
  • python學習筆記:條件語句IF
    else 為可選語句,當需要在條件不成立時執行內容則可以執行相關語句': # 判斷變量是否為 python print('welcome boss') # 並輸出歡迎信息else: print(name) # 條件不成立時輸出變量名稱
  • Python基礎知識儲備,if-elif-else語句綜合應用,新手使用教程 - IT...
    python開發Python 中條件選擇語句的第三種形式:if-elif-else,對於前面介紹的 if 分支語句,執行過程非常簡單,判斷 if 語句中的表達式是否為True真,如果為True程序就會執行 if 語句下面的代碼塊,if語句中的判斷結果為False假,就會依次判斷 elif 語句中的表達式,如果為True真,程序就會執行 elif 中的代碼塊……(if語句之後可以有任意數量的elif語句)如果前面所有條件都為False假,程序就會執行 else語句下面的代碼塊,else語句最多只可以有一個語句。
  • 條件測試語句(2)——if、else搭配使用
    在上一講的內容中,我們對if條件語句做了一些基本的介紹。我們經常需要在條件測試通過的時候執行一個操作,並在沒有通過時執行另外一個操作:在這種情況下,我們就可以使用python提供的if-else語句。if—else語句塊類似於簡單的if語句,但是其中的else語句讓我們能夠指定條件未通過時要執行的操作。
  • 如何學python-第六課 流程控制-IF,ELSE,條件語句
    今天,我們會把上節課學到的東西與 if、else結合起來使用。條件判斷語句條件判斷語句會根據語句內容返回True或者False.我們上篇文章裡使用的某些語句就是條件判斷語句。如果接下來的內容讓你感到困惑,我建議你去複習一下上一篇文章。老規矩,我們還是先看看代碼:這裡這些語句就叫做『條件判斷語句』。
  • Python if else條件語句詳解
    在 Python 中,可以使用 if else 語句對條件進行判斷,然後根據不同的結果執行不同的代碼,這稱為選擇結構或者分支結構。Python 中的 if else 語句可以細分為三種形式,分別是 if 語句、if else 語句和 if elif else 語句,它們的語法和執行流程如表1所示。
  • 《第4章 Python 流程控制語語句》4.2.3 if……elif……else語句!
    《高中信息技術 Python編程》 教學案《第4章 Python 流程控制語語句》4.2.3 if...elif...else語句!瀏覽器版本過低,暫不支持視頻播放(3)if....elif....else....形式語法格式如下:if 條件1:條件1滿足執行的代碼elif
  • 【Python 第23課】 if, elif, else
    為什麼我跳要著講,因為我的想法是先講下最最基本的概念,讓你能用起來,之後你熟悉了,再說些細節。關於if,可以發送數字『7』回顧之前的課程。它除了我們之前講的用法外,還可以配合elif和else使用,使程序的運行順序更靈活。之前說的if,是:「如果」條件滿足,就做xxx,否則就不做。else顧名思義,就是:「否則」就做yyy。
  • Python分支結構(if條件語句)
    if 條件語句:                      if<條件>:                            <語句塊1>                        [else:                            <語句塊2>]
  • 從零開始學Python-Day10-if、elif、else條件判斷
    電腦程式就是順序向下一步步進行條件判斷,執行不同指令。條件判斷可以說是電腦程式的精髓所在。條件判斷if列出條件,如果判斷為True,就執行後面的指令,如果判斷為False,不執行if後的指令,去執行else後面的指令,if條件和else後面都要加: 對應執行的命令記得縮進:注意:因為是單純的一個判斷循環,我們直接在交互模式下就可以輸入指令並執行
  • 第三章3:elif 語句
    周三:elif 語句條件語句賦予我們在程序中做決策的能力,但目前為止,我們只看到了它能力的冰山一角。今天我們開始學習 elif 語句,它們賦予我們基於條件分別運行代碼塊的能力,它們也被稱為「else if 語句」。
  • python條件判斷語句
    python輸入語句 大家已經練習完了輸出之後呢比較運算符: 賦值運算符: 邏輯運算符: 以上是我們要掌握的運算符,還有一些位運算符、成員運算符、身份運算符等等 大家可以自己搜索了解一下 運算符的優先級 條件判斷語句
  • Python條件判斷語句詳解:if、else、switch都有了
    if…elif…else語句是對if…else…語句的補充。當程序的條件分支很多時,可以使用這種語句。if…elif…else語句相當於C、Java中的if…elseif…else語句。該語句的格式如下。
  • python分支結構if-else解決你的選擇困難症,學習python第3天
    而在python程序中,也存在選擇。python分支結構if-else就是python程序中的選擇,作用py程式設計師的我們應用如何來使用python分支結構呢?下面羽憶教程為你介紹。而python中一般用於解決這種多結果問題就需要使用到分支結構。其定義是根據給出的條件是否成立,從而決定其執行的步驟或者輸出的結果。一般python分支結構分為三種:單分支結構、雙分支結構和多分支結構,其使用到的關鍵詞有if、elif和else三個,下面為你介紹三種分支結構的使用。
  • Python基礎教程判斷(if)語句
    >中,if 語句 就是用來進行判斷的,格式如下:python if 要判斷的條件: 條件成立時,要做的事情 ……注意:代碼的縮進為一個tab鍵,或者 …… else: 條件不成立時,要做的事情 ……注意:if和else語句以及各自的縮進部分共同是一個 完整的代碼塊
  • 如果 (If) | Python 中的條件控制語句詳解
    它包含 if 、elif 、else 關鍵字, Python 中沒有  else if 的寫法,只存在 elif 這種寫法。每句判斷語句使用冒號 - : 結尾,使用 縮進 劃分語句塊,相同縮進數的語句組成一個語句塊。
  • python:if語句和字典
    微信公眾號:學點啥玩點啥小白友好型python:if語句和字典#第5章 if語句
  • Python 語句與結構
    1、賦值語句python 的賦值都是指對象的引用。保存的是對象的內存地址。例如PyValue=「今天天氣不錯」 PyValue=「心情也不錯」第一句執行時Python 先在內存中創建字符串對象並賦值」 今天天氣不錯」, PyValue 設置為字符串對象的引用。
  • Python中的IF條件判斷語句
    # if條件判斷:if根據提供的條件進行判定,如果為真,則執行if後面的語句,反之不執行# if作為基本的流程判斷單元,使程序更靈活# Python 中的 if else 語句可以細分為三種形式,分別是
  • 教程丨Python3 條件控制
    if語句的關鍵字為:if – elif – else。注意:1、每個條件後面要使用冒號 :,表示接下來是滿足條件後要執行的語句塊。2、使用縮進來劃分語句塊,相同縮進數的語句在一起組成一個語句塊。3、在Python中沒有switch – case語句。