Python流程控制語句的深入講解
1.程序結(jié)構(gòu)
計算機在解決問題時,分別是順序執(zhí)行所有語句、選擇執(zhí)行部分語句、循環(huán)執(zhí)行部分語句,分別是:順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。如下圖:
2.選擇語句
2.1最簡單的if語句
Python使用保留字if來組成選擇語句,其格式如下:
if 表達式: 代碼塊
表達式可以是一個單純的布爾值或者變量,也可以是比較表達式或者邏輯表達式,如果表達式值為真,則執(zhí)行“代碼塊”;如果值為假,就跳過“代碼塊”,執(zhí)行后面語句,如圖
注:1.在Python中,當表達式的值為非零的數(shù)或者非空的字符串時,if語句也認為是條件成立(即為真值)。
·· 2.使用if語句時,如果只有一條語句,那么語句塊可以直接寫到冒號“:”的右側(cè)。但為了代碼可讀性不建議這么做。
3.常見錯誤:
1.if語句后面未加冒號 number = 3 if number == 3 #后面未加冒號,正確的是結(jié)尾處添加英文半角的冒號:if number == 3: print(number) 2.使用if語句時,如果在符合條件時,需要執(zhí)行多個語句,一定要記得按照邏輯順序進行代碼縮進,否則程序的本意會有變化,但程序不會報錯,且bug不容易發(fā)現(xiàn)。 代碼1: number = 3 if number == 3: print(number) print('這個是5') 代碼2: number = 3 if number == 3: print(number) print('這個是5'
2.2.if …… else 語句
Python中提供 if …else 語句來解決兩個選擇問題,其格式如下:
if 表達式: 語句塊1 else: 語句塊2
使用 if …else 語句時,表達式可以是一個單純的布爾值或者變量,也可以是比較表達式或者邏輯表達式,如果表達式值為真,則執(zhí)行“代碼塊”;如果值為假,執(zhí)行else后面的代碼塊。如圖所示:
技巧:
if…else額語句可以使用條件表達式進行簡化,如下: a = 5 if a > 0: b = a else: b = -a print(b) 簡化: a = 5 b = a if a > 0 else -a print(b)
注:1. 在使用else 語句時,else一定不可以單獨使用,它必須和保留字if一起搭配使用。
2.程序中使用if…else 語句時,如果出現(xiàn)多個if 語句多余else語句的情況,那么該else語句將會根據(jù)確定該else 語句屬于哪個if語句。
2.3.if…elif…else語句
在開發(fā)程序時遇到多選一的情況,則可以使用if …elif…else語句,具體情況如下:
if 表達式1: 語句塊1 elif 表達式2: 語句塊2 elif 表達式3: 語句塊3 … else: 語句塊n
使用 if …elif…else 語句時,表達式可以是一個單純的布爾值或者變量,也可以是比較表達式或者邏輯表達式,如果表達式值為真,則執(zhí)行語句;如果值為假,則跳過該執(zhí)行語句,進行下一個elif判斷,只有表達式全部為假的情況下,執(zhí)行else后面的代碼塊。如圖所示:
注:1. if 和 elif 都需要判斷表達式的真假,而 else 則不需要判斷;另外 elif 和 elif 都需要跟 if 一起使用,不能單獨使用。
2. 使用if語句時盡量避免遵循以下原則:
(1).當使用布爾類型的變量作為判斷條件時,假設(shè)布爾類型變量為flag,較為規(guī)范格式; if flag: #表示為真 if not flag #表示為假 不符合規(guī)范格式: if flag == True: if flag == False: (2).使用 " if 1 == a: " 這樣的書寫格式可以防止錯寫成 " if a = 1: "這種形式,從而避免出錯
2.4 if 語句的嵌套
前面已經(jīng)介紹了3種形式的 if 語句,這三種都可以進行相互嵌套:
(1) . 在最簡單的if語句中嵌套 if……else語句,形式如下:
if 表達式1: if 表達式2: 語句塊1 else: 語句塊2
(2). 在if……else中嵌套if……else語句,形式如下:
if 表達式1: if 表達式2: 語句塊1 else: 語句塊2 else: if 表達式3: 語句塊3 else: 語句塊4
注:if 選擇語句可以有多種嵌套方式,開發(fā)時可以可以根據(jù)自身的需要進行選擇合適的嵌套方式,但一定要嚴格控制好不同級別代碼的縮進量。
3.條件表達式
在程序開發(fā)過程中,經(jīng)常會根據(jù)表達式的結(jié)果,有條件的進行賦值,例如返回最大值:
a = 6 b = 3 if a > b: c = a else: c = b
針對以上代碼,使用條件表達式進行簡化,如下:
a = 6 b = 3 c = a if a > b else b
4.循環(huán)語句
4.1 while 循環(huán)
while循環(huán)是通過一個條件來控制是否要繼續(xù)反復(fù)執(zhí)行循環(huán)體(循環(huán)體是指一組被重復(fù)執(zhí)行的語句)中的語句。
當條件表達式的返回值為真時,則執(zhí)行循環(huán)體中的語句,執(zhí)行完畢后,重新判斷條件表達式的返回值,直到表達式返回的結(jié)果為假是退出循環(huán)體。
注:在使用while循環(huán)語句時,一定不要忘記添加將循環(huán)條件改變?yōu)镕lase的代碼,否則,將產(chǎn)生死循環(huán)。但開發(fā)中也離不開死循環(huán),可根據(jù)情況進行編寫。
4.2. for循環(huán)
for 循環(huán)是一個依次重復(fù)執(zhí)行的循環(huán),通常適用于枚舉、遍歷序列和對象中的元素。語法如下:
for 迭代變量 in 可迭代對象: 循環(huán)體
迭代變量用于保存讀除的值,對象為遍歷或迭代的對象,該對象可以是任何有序的序列對象,如字符串,列表,元組等,循環(huán)體為一組被重復(fù)執(zhí)行的語句。
for循環(huán)語句可以最基本的應(yīng)用就是進行數(shù)值循環(huán)和遍歷字符串。還可以進行遍歷列表、元組、集合和字典。
4.3. 循環(huán)嵌套
在Python中,是允許在一個循環(huán)體中嵌套另一個循環(huán)。
(1). 在while循環(huán)中嵌套while循環(huán)
while 條件表達式1: while 條件表達式2: 循環(huán)體2 循環(huán)體1
(2). 在for 循環(huán)中嵌套 for 循環(huán)
for 迭代變量1 in 對象1: for 迭代變量2 in 對象2: 循環(huán)體2 循環(huán)體1
(3). 在while 循環(huán)中嵌套 for 循環(huán)
while 條件表達式: for 迭代變量 in 對象: 循環(huán)體2 循環(huán)體1
(4). 在 for 循環(huán)中嵌套 while 循環(huán)
while 條件表達式: for 迭代變量 in 對象: 循環(huán)體2 循環(huán)體1
特殊案例:九九乘法表
for i in range(0,10): for j in range(1,i+1): print(str(j) + "*" + str(i) + "=" + str(i * j) +"\t" ,end = " " print("")
5.跳轉(zhuǎn)語句
當循環(huán)滿足一定條件時,程序會一直執(zhí)行下去,如果需要在中間離開循環(huán),也就是for循環(huán)結(jié)束重復(fù)之前,或者while循環(huán)找到結(jié)束條件之前,即break語句和continue語句。
5.1 break語句
break可以終止當前循環(huán),包括for循環(huán)和while循環(huán)在內(nèi)的所有控制語句。
在while中使用break語句:
while 條件表達式1: 執(zhí)行語句 if 條件表達式2: break
在for 中使用break語句
for 迭代變量 in 對象: if 條件表達式: break
while語句使用break for語句中使用break
5.2.continue語句
continue語句的作用沒有break語句強大,他只能終止本次循環(huán)而提前進入下次循環(huán)中。
在while中使用continue語句
while 條件表達式1: 執(zhí)行代碼 if 條件表達式2: continue
在for 中使用continue語句
for 迭代變量 in 對象: if 條件表達式: continue
while語句使用continue for語句中使用continue
注:break與continue的區(qū)別
break語句一般會結(jié)合if 語句進行搭配使用,表示在某種條件下,跳出循環(huán)。如果使用嵌套循環(huán),break語句將跳出最內(nèi)層循環(huán)。
continue語句一般也會結(jié)合if語句進行搭配使用,表示在某種條件下,跳出當前循環(huán)的剩下語句,繼續(xù)進行下一輪循環(huán),如果使用嵌套循環(huán),continue語句將只跳過最內(nèi)層循環(huán)中剩余語句。
6.pass語句
在Python中pass語句表示空語句,它不做任何事情,一般起到站位作用,常用在代碼調(diào)試等。
#例: for i in range(1,10): #輸出1~10的數(shù)不包含10 if i % 2 == 0: #判斷是否是偶數(shù) print(i,end="") #在同一行打印偶數(shù) else: #不是偶數(shù) pass #占位符,不做任何事情,直接跳過 #輸出結(jié)果為: 2 4 6 8
總結(jié)
到此這篇關(guān)于Python流程控制語句的文章就介紹到這了,更多相關(guān)Python流程控制語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
VSCode基礎(chǔ)使用與VSCode調(diào)試python程序入門的圖文教程
這篇文章主要介紹了VSCode基礎(chǔ)使用+VSCode調(diào)試python程序入門圖文教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03Tensorflow2.10使用BERT從文本中抽取答案實現(xiàn)詳解
這篇文章主要為大家介紹了Tensorflow2.10使用BERT從文本中抽取答案實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04python 用pandas實現(xiàn)數(shù)據(jù)透視表功能
這篇文章主要介紹了python 用pandas實現(xiàn)數(shù)據(jù)透視表功能的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12python分析inkscape路徑數(shù)據(jù)方案簡單介紹
這篇文章主要介紹了python分析inkscape路徑數(shù)據(jù)方案簡單介紹,文章通過圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下2022-09-09python pandas合并Sheet,處理列亂序和出現(xiàn)Unnamed列的解決
這篇文章主要介紹了python pandas合并Sheet,處理列亂序和出現(xiàn)Unnamed列的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03