Python?分支結(jié)構(gòu)詳解
一、分支結(jié)構(gòu)
為了限定用戶正規(guī)操作,也為了更好的控制程序的邏輯,必須在適當(dāng)時引入條件結(jié)構(gòu)。
Python 條件語句是通過一條或多條語句的執(zhí)行結(jié)果(True
或者 False
)來決定執(zhí)行的代碼塊。
可以通過下圖來簡單了解條件語句的執(zhí)行過程:
二、單分支結(jié)構(gòu)
單分支結(jié)構(gòu)邏輯是最簡單的分支結(jié)構(gòu),語法格式如下:
if 條件表達(dá)式:
代碼塊
根據(jù)語法格式?jīng)Q定的執(zhí)行流程:如果“if”關(guān)鍵詞后棉的條件表達(dá)式成立,則執(zhí)行與if有縮進(jìn)結(jié)構(gòu)的結(jié)構(gòu)體代碼段,反之條件表達(dá)式就不執(zhí)行語法格式下的代碼段。
三、雙分支結(jié)構(gòu)
雙分支結(jié)構(gòu)是在原來的單分支結(jié)構(gòu)基礎(chǔ)上,除條件為真時做一些事情外,條件為假時還需要繼續(xù)去做一些事情的分支結(jié)構(gòu)邏輯,其語法
結(jié)構(gòu)如下:
if 條件表達(dá)式:
代碼塊1
else :
代碼塊2
執(zhí)行流程為:如果條件表達(dá)式成立,則執(zhí)行if塊中的代碼,否則執(zhí)行else塊中的代碼。
四、多分支結(jié)構(gòu)
多分支結(jié)構(gòu)和雙分支結(jié)構(gòu)都是對一個條件作出的兩種判斷,若存在多個條件時,就需要多分支結(jié)構(gòu)。
其語法結(jié)構(gòu)如下:
if 條件表達(dá)式1 :
代碼塊1
elif 條件表達(dá)式2 :
代碼塊2
else :
代碼塊3
執(zhí)行流程:如果表達(dá)式1為Ture則表明條件表達(dá)式1成立,執(zhí)行if語句塊的代碼,執(zhí)行完不再執(zhí)行后面的elif中的代碼塊:如果if后面條件表達(dá)式1不成立即值為False,則判斷條件表達(dá)式2是否成立;如果條件表達(dá)式2成立則執(zhí)行代碼塊2,如果所有的if和elif都不成立,則執(zhí)行else。
注意:
- 1、每個條件和else后面要使用冒號 :,表示接下來是滿足條件后要執(zhí)行的語句塊。
- 2、使用縮進(jìn)來劃分語句塊,相同縮進(jìn)數(shù)的語句在一起組成一個語句塊。
- 3、在Python中沒有switch – case語句。
五、嵌套分支結(jié)構(gòu)
在嵌套 if 語句中,可以把 if…elif…else
結(jié)構(gòu)放在另外一個if…elif…else
結(jié)構(gòu)中。
if 表達(dá)式1:
語句
if 表達(dá)式2:
語句
elif 表達(dá)式3:
語句
else:
語句
elif 表達(dá)式4:
語句
else:
語句
下面用經(jīng)典的闖關(guān)游戲來說明嵌套結(jié)構(gòu)。第一關(guān)問你一個問題,答對了,第一關(guān)闖關(guān)結(jié)束,100萬元夢想基金拿到手。再答第二題,第二題回答正確,第二關(guān)闖關(guān)結(jié)束,1000萬元夢想基金拿到手。再答第三題,第三題回答正確,第三關(guān)闖關(guān)結(jié)束,10000萬元夢想基金拿到手。每一關(guān)回答正確后都可選擇是否進(jìn)入下一關(guān),如果否,則得到這些夢想基金,如果是進(jìn)入下一關(guān),如果回答錯誤,夢想基金清零。
具體代碼如下:
input("確定開始挑戰(zhàn)嗎?") first = input("第一題:1+1=?") if first == "2" : ? ? ok = input("恭喜你答對了,你獲得了100萬的夢想基金,確定要繼續(xù)嗎?(y/n)") ? ? if ok == "y" : ? ? ? ? second = input("第二題:2+2=?") ? ? ? ? if second == "4" : ? ? ? ? ? ? ok1 = input("恭喜你答對了,你獲得了1000萬的夢想基金,確定要繼續(xù)嗎?(y/n)") ? ? ? ? ? ? if ok1 == "y" : ? ? ? ? ? ? ? ? third = input("第三題:3+3=?") ? ? ? ? ? ? ? ? if third == "6" : ? ? ? ? ? ? ? ? ? ? print("恭喜你答對了,你獲得了10000萬的夢想基金,游戲結(jié)束。") ? ? ? ? ? ? ? ? else:print("游戲結(jié)束!你獲得了0元夢想基金。") ? ? ? ? ? ? else:print("游戲結(jié)束!你獲得了1000萬夢想基金。") ? ? ? ? else:print("游戲結(jié)束!你獲得了0元夢想基金。") ? ? else: print("游戲結(jié)束!你獲得了100萬夢想基金。") else: print("游戲結(jié)束!你獲得了0元夢想基金。")
運行結(jié)果如下:
六、三元表達(dá)式
分支結(jié)構(gòu)邏輯的常用的就是一種條件表達(dá)式來判斷真假的雙分支結(jié)構(gòu),其有一種簡單的寫法,叫做三元表達(dá)式,結(jié)構(gòu)如下:
語句1 if 條件表達(dá)式 else 語句2
1
如果if后邊的表達(dá)式成立,則執(zhí)行語句1;如果if后面的條件表達(dá)式不成立,則執(zhí)行語句2。
七、條件測試
每條if語句的核心都是一個值為Ture
或False
的表達(dá)式,這種表達(dá)式被稱為條件測試,也可叫條件表達(dá)式。而分支邏輯結(jié)構(gòu)可以說就是條件測試加上順序結(jié)構(gòu)的語句構(gòu)成,條件測試的重要性也是不可忽視的。
常用的條件測試如下:
- 檢查變量的值是不是等于某個值,==
- 檢查是否相等時不考慮大小寫,Python要區(qū)分大小寫
- 檢查是否不相等,!=
- 比較數(shù)字
到此這篇關(guān)于Python 分支結(jié)構(gòu)詳解的文章就介紹到這了,更多相關(guān)Python 分支結(jié)構(gòu)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實現(xiàn)自動發(fā)送報警監(jiān)控郵件
這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)自動發(fā)送報警監(jiān)控郵件,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-06-06Python繪圖系統(tǒng)之繪制散點圖,極坐標(biāo)和子圖
這篇文章主要為大家詳細(xì)介紹了如何基于Python實現(xiàn)一個繪圖系統(tǒng),可以支持繪制散點圖,極坐標(biāo)和子圖,文中的示例代碼講解詳細(xì),感興趣的可以了解下2023-09-09