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