Python?分支結(jié)構(gòu)詳解
一、分支結(jié)構(gòu)
為了限定用戶(hù)正規(guī)操作,也為了更好的控制程序的邏輯,必須在適當(dāng)時(shí)引入條件結(jié)構(gòu)。
Python 條件語(yǔ)句是通過(guò)一條或多條語(yǔ)句的執(zhí)行結(jié)果(True
或者 False
)來(lái)決定執(zhí)行的代碼塊。
可以通過(guò)下圖來(lái)簡(jiǎn)單了解條件語(yǔ)句的執(zhí)行過(guò)程:
二、單分支結(jié)構(gòu)
單分支結(jié)構(gòu)邏輯是最簡(jiǎn)單的分支結(jié)構(gòu),語(yǔ)法格式如下:
if 條件表達(dá)式:
代碼塊
根據(jù)語(yǔ)法格式?jīng)Q定的執(zhí)行流程:如果“if”關(guān)鍵詞后棉的條件表達(dá)式成立,則執(zhí)行與if有縮進(jìn)結(jié)構(gòu)的結(jié)構(gòu)體代碼段,反之條件表達(dá)式就不執(zhí)行語(yǔ)法格式下的代碼段。
三、雙分支結(jié)構(gòu)
雙分支結(jié)構(gòu)是在原來(lái)的單分支結(jié)構(gòu)基礎(chǔ)上,除條件為真時(shí)做一些事情外,條件為假時(shí)還需要繼續(xù)去做一些事情的分支結(jié)構(gòu)邏輯,其語(yǔ)法
結(jié)構(gòu)如下:
if 條件表達(dá)式:
代碼塊1
else :
代碼塊2
執(zhí)行流程為:如果條件表達(dá)式成立,則執(zhí)行if塊中的代碼,否則執(zhí)行else塊中的代碼。
四、多分支結(jié)構(gòu)
多分支結(jié)構(gòu)和雙分支結(jié)構(gòu)都是對(duì)一個(gè)條件作出的兩種判斷,若存在多個(gè)條件時(shí),就需要多分支結(jié)構(gòu)。
其語(yǔ)法結(jié)構(gòu)如下:
if 條件表達(dá)式1 :
代碼塊1
elif 條件表達(dá)式2 :
代碼塊2
else :
代碼塊3
執(zhí)行流程:如果表達(dá)式1為T(mén)ure則表明條件表達(dá)式1成立,執(zhí)行if語(yǔ)句塊的代碼,執(zhí)行完不再執(zhí)行后面的elif中的代碼塊:如果if后面條件表達(dá)式1不成立即值為False,則判斷條件表達(dá)式2是否成立;如果條件表達(dá)式2成立則執(zhí)行代碼塊2,如果所有的if和elif都不成立,則執(zhí)行else。
注意:
- 1、每個(gè)條件和else后面要使用冒號(hào) :,表示接下來(lái)是滿(mǎn)足條件后要執(zhí)行的語(yǔ)句塊。
- 2、使用縮進(jìn)來(lái)劃分語(yǔ)句塊,相同縮進(jìn)數(shù)的語(yǔ)句在一起組成一個(gè)語(yǔ)句塊。
- 3、在Python中沒(méi)有switch – case語(yǔ)句。
五、嵌套分支結(jié)構(gòu)
在嵌套 if 語(yǔ)句中,可以把 if…elif…else
結(jié)構(gòu)放在另外一個(gè)if…elif…else
結(jié)構(gòu)中。
if 表達(dá)式1:
語(yǔ)句
if 表達(dá)式2:
語(yǔ)句
elif 表達(dá)式3:
語(yǔ)句
else:
語(yǔ)句
elif 表達(dá)式4:
語(yǔ)句
else:
語(yǔ)句
下面用經(jīng)典的闖關(guān)游戲來(lái)說(shuō)明嵌套結(jié)構(gòu)。第一關(guān)問(wèn)你一個(gè)問(wèn)題,答對(duì)了,第一關(guān)闖關(guān)結(jié)束,100萬(wàn)元夢(mèng)想基金拿到手。再答第二題,第二題回答正確,第二關(guān)闖關(guān)結(jié)束,1000萬(wàn)元夢(mèng)想基金拿到手。再答第三題,第三題回答正確,第三關(guān)闖關(guān)結(jié)束,10000萬(wàn)元夢(mèng)想基金拿到手。每一關(guān)回答正確后都可選擇是否進(jìn)入下一關(guān),如果否,則得到這些夢(mèng)想基金,如果是進(jìn)入下一關(guān),如果回答錯(cuò)誤,夢(mèng)想基金清零。
具體代碼如下:
input("確定開(kāi)始挑戰(zhàn)嗎?") first = input("第一題:1+1=?") if first == "2" : ? ? ok = input("恭喜你答對(duì)了,你獲得了100萬(wàn)的夢(mèng)想基金,確定要繼續(xù)嗎?(y/n)") ? ? if ok == "y" : ? ? ? ? second = input("第二題:2+2=?") ? ? ? ? if second == "4" : ? ? ? ? ? ? ok1 = input("恭喜你答對(duì)了,你獲得了1000萬(wàn)的夢(mèng)想基金,確定要繼續(xù)嗎?(y/n)") ? ? ? ? ? ? if ok1 == "y" : ? ? ? ? ? ? ? ? third = input("第三題:3+3=?") ? ? ? ? ? ? ? ? if third == "6" : ? ? ? ? ? ? ? ? ? ? print("恭喜你答對(duì)了,你獲得了10000萬(wàn)的夢(mèng)想基金,游戲結(jié)束。") ? ? ? ? ? ? ? ? else:print("游戲結(jié)束!你獲得了0元夢(mèng)想基金。") ? ? ? ? ? ? else:print("游戲結(jié)束!你獲得了1000萬(wàn)夢(mèng)想基金。") ? ? ? ? else:print("游戲結(jié)束!你獲得了0元夢(mèng)想基金。") ? ? else: print("游戲結(jié)束!你獲得了100萬(wàn)夢(mèng)想基金。") else: print("游戲結(jié)束!你獲得了0元夢(mèng)想基金。")
運(yùn)行結(jié)果如下:
六、三元表達(dá)式
分支結(jié)構(gòu)邏輯的常用的就是一種條件表達(dá)式來(lái)判斷真假的雙分支結(jié)構(gòu),其有一種簡(jiǎn)單的寫(xiě)法,叫做三元表達(dá)式,結(jié)構(gòu)如下:
語(yǔ)句1 if 條件表達(dá)式 else 語(yǔ)句2
1
如果if后邊的表達(dá)式成立,則執(zhí)行語(yǔ)句1;如果if后面的條件表達(dá)式不成立,則執(zhí)行語(yǔ)句2。
七、條件測(cè)試
每條if語(yǔ)句的核心都是一個(gè)值為Ture
或False
的表達(dá)式,這種表達(dá)式被稱(chēng)為條件測(cè)試,也可叫條件表達(dá)式。而分支邏輯結(jié)構(gòu)可以說(shuō)就是條件測(cè)試加上順序結(jié)構(gòu)的語(yǔ)句構(gòu)成,條件測(cè)試的重要性也是不可忽視的。
常用的條件測(cè)試如下:
- 檢查變量的值是不是等于某個(gè)值,==
- 檢查是否相等時(shí)不考慮大小寫(xiě),Python要區(qū)分大小寫(xiě)
- 檢查是否不相等,!=
- 比較數(shù)字
到此這篇關(guān)于Python 分支結(jié)構(gòu)詳解的文章就介紹到這了,更多相關(guān)Python 分支結(jié)構(gòu)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用python+whoosh實(shí)現(xiàn)全文檢索
今天小編就為大家分享一篇使用python+whoosh實(shí)現(xiàn)全文檢索,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12python實(shí)現(xiàn)自動(dòng)發(fā)送報(bào)警監(jiān)控郵件
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)自動(dòng)發(fā)送報(bào)警監(jiān)控郵件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06通過(guò)python 執(zhí)行 nohup 不生效的解決
這篇文章主要介紹了通過(guò)python 執(zhí)行 nohup 不生效的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04Python繪圖系統(tǒng)之繪制散點(diǎn)圖,極坐標(biāo)和子圖
這篇文章主要為大家詳細(xì)介紹了如何基于Python實(shí)現(xiàn)一個(gè)繪圖系統(tǒng),可以支持繪制散點(diǎn)圖,極坐標(biāo)和子圖,文中的示例代碼講解詳細(xì),感興趣的可以了解下2023-09-09python創(chuàng)建文件時(shí)去掉非法字符的方法
今天小編就為大家分享一篇python創(chuàng)建文件時(shí)去掉非法字符的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10python對(duì)RabbitMQ的簡(jiǎn)單入門(mén)使用教程
RabbitMq是實(shí)現(xiàn)了高級(jí)消息隊(duì)列協(xié)議(AMQP)的開(kāi)源消息代理中間件,下面這篇文章主要給大家介紹了關(guān)于python對(duì)RabbitMQ的簡(jiǎn)單入門(mén)使用,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06Python自動(dòng)化完成tb喵幣任務(wù)的操作方法
2019雙十一,tb推出了新的活動(dòng),商店喵幣,看了一下每天都有幾個(gè)任務(wù)來(lái)領(lǐng)取喵幣,從而升級(jí)店鋪賺錢(qián),然而我既想賺紅包又不想干苦力,遂使用python來(lái)進(jìn)行手機(jī)自動(dòng)化操作,需要的朋友跟隨小編一起看看吧2019-10-10