ftl if else判断_07.合意就执行,不行就拉倒-if/else条件控制(一)
先來認識一下本節將涉及到的幾個Python關鍵字:
- if:英文意思是“如果、假若”,它將是本節學習的重點。
- else:英文意思是“其他的、另外的”,一般與if配合使用。
- elif:相當于“else + if”的組合,表達“另外,如果”的意思,與if配合使用。
- and:英文意思是“和、與”,在Python中作為邏輯操作符,表示“并且”的意思。
- or:英文意思是“或者”,在Python中作為邏輯操作符,表示“或者”的意思。
- True:英文意思是“真實的,確實的”,在Python中屬于一種數據類型(“布爾類型”),且表示“真”。
- False:英文意思是“不真實的,不確實的”,在Python中屬于一種數據類型(“布爾類型”),且表示“假”,與True相反。“布爾類型”與“整型”(代表著整數)、“浮點型”(代表著小數)一樣,代表了一類數據,且“布爾類型”只有兩個值:True和False。
先通過下面的例子了解一下“if”的使用:
chengji- 第1行,賦值chengji變量為88;
- 第2行,在“if”后、“:”(再次提醒必須是英文冒號)前,有一個條件判斷表達式,比如在這里,條件判斷表達的意思是:“chengji大于等于60”,要是滿足了這個條件,電腦就會執行“:”下面縮進的程序塊,即打印出“及格!”,要是不滿足這個條件,就不會執行“:”下面縮進的程序塊。
- 第3行,緊跟在if語句的“:”后面,并縮進排版,為從屬于第二行if的程序塊,要是if行的條件判斷不滿足,則該行代碼不會執行。
接著,介紹一下常見的比較運算符:
- <:小于,要是運算符左側的數小于右側的數,則表達式條件判斷正確,我們則可以說這個表達式為真或True,比如:“1<2”這個表達式則為True,或者說這個表達式的值為True。
- <=:小于等于,要是左側的數大于右側的數,則表達式條件判斷為假,我們則可以說這個表達式為假或False,或者說這個表達式的值為False。
- >:大于
- >=:大于等于
- ==:等于,我們前面章節提到過,一個等于,即“=”,表示賦值操作,把右側的值賦值給左側的變量,而“==”,兩個連寫的等于則表示條件判斷,判斷左側的數是否等于右側的數,若相等則為True,否則為False。
- !=:不等于
再通過下面的例子看看“if”與“else”的配合使用:
chengji- 第1行至第3行與上面的例子是一樣的,當if后面的條件判斷為True時(即chengji滿足大于等于60時),則執行if下面的程序塊,即打印“及格!”,若不滿足,則從屬于if的程序塊不會執行。
- 第4行,需要注意的是“else”必須與“if”對齊,意味著兩者是并列的,而且兩者是二選一的關系,且“else”后面也有個“:”,意味著緊跟著的、縮進的代碼屬于“else”的程序塊。
- if與else二選一的關系,意味著要是if后的條件判斷為True,則執行完從屬于if的程序塊后,后面的else以及從屬于else的程序塊都會直接跳過,不會被執行;而要是if后面的條件判斷為False,從屬于if的程序塊不會被執行,而是直接跳到從屬于else的程序塊,打印出“不及格!”。建議大家可以按照上一節學到的程序調試方法,通過給chengji設置不同的值,實際單步調試、跟蹤一下不同條件判斷情況下程序的執行路徑,能夠更清晰本節我們講到的條件控制語句。
接下來,再通過下面的例子看看“if-elif-else”的配合使用:
chengji上述程序的執行流程是這樣的:執行第1行->執行第2行->執行第4行->執行第5行,然后整個程序運行完畢、退出。
從以上代碼中可以看得出來,對于條件控制語句,第一個條件判斷總是使用“if”關鍵字,“if”之后、“else”之前要是還有其他條件判斷,則一律采用“elif”關鍵字,這三個關鍵字組成了一個完整的“if-elif-else”控制塊,而且所有這些關鍵字必須是嚴格對齊的;另外,從上面的執行流程中可以看得出來,程序執行時,只要有“else”存在,程序一定且只會執行一次從屬于if、elif或者else的程序塊。對于if或者elif行,只要其后的條件滿足(即為True),則執行完畢其下的程序塊后,立即跳出整個“if-elif-else”控制塊,如果if以及elif語句中的條件均不滿足,才會執行else下的程序塊。
接下來,我們從另外一個角度再仔細分析一下上述代碼,因為chengji的取值為88,所以它其實同時滿足第1、第2和第3個elif中的條件判斷,即該值大于等于80,也大于等于70,同時還大于等于60,但是,因為該值首先符合了第1個elif中的條件判斷(即該值大于等于80),執行完該條件判斷下的程序塊(即打印完畢“良好!”)后,程序就跳出整個“if-elif-else”控制塊了,所以后面的條件判斷即使滿足要求,也不會被執行。
如上圖所示,對于存在包含關系的條件判斷,比如“大于等于90”所涵蓋的范圍,從屬于“大于等于80”所涵蓋的范圍,而“if-elif-else”條件判斷的特點是:從上至下,按順序執行條件判斷,只執行第一個符合條件的程序塊,因此,為了準確、精準的匹配,對于存在包含關系的條件判斷,一定要按照涵蓋的范圍,由小范圍到大范圍進行排序。還是以上一段代碼為例,要是“大于等于70”排在了“大于等于80”前面,則對于88分的成績,首先滿足了“大于等于70”的條件,則執行完畢打印“中等!”,就跳出了整個“if-elif-else”控制塊,導致結果判斷失誤。
另外一種更保險的做法就是對各項條件判斷進行精準描述,避免對排序的依賴,如下所示,if及elif所在的行(連同其下所屬的代碼塊)任意調換順序,都不會導致結果判斷失誤。
if在上面的條件判斷中用到了“and”邏輯操作符,以“chengji >= 80 and chengji < 90”為例,表達的意思為“chengji大于等于80,而且同時滿足小于90”,即,只有“and”左右兩側的條件都為真的情況下,“and”連接的整個表達式才為真;同理,要是由“or”連接的話,則“or”左右兩側的條件只要有一個為真,則“or”連接的整個表達式就為真。補充說明一下,對于存在“and”、“or”的表達式,之所以先進行他們兩側的條件判斷,最后才進行“and”、“or”的運算,因為“邏輯操作符”的運算優先級低于“比較運算符”,就像“+-”運算符的優先級低于“×÷”一樣,所以先進行“×÷”運算,后進行“+-”運算。
在本節的最后,我們總結一下“if-elif-else”條件控制的流程圖,如下圖所示。
07.合意就執行,不行就拉倒-if/else條件控制(一)?mp.weixin.qq.com
總結
以上是生活随笔為你收集整理的ftl if else判断_07.合意就执行,不行就拉倒-if/else条件控制(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python filter函数_Pyth
- 下一篇: springboot api版本控制_S