最近工作有些忙,所以更新的有些緩慢,這章我主要說下循環(huán)結構和異常處理的方法。
程序的循環(huán)結構
Python語言的循環(huán)結構包括兩種:遍歷循環(huán)和無限循環(huán)。
遍歷循環(huán)使用保留字for依次提取遍歷結構各元素進行處理;
無限循環(huán)使用保留字while根據(jù)判斷條件執(zhí)行程序。
遍歷循環(huán):for
遍歷循環(huán)可以理解為從遍歷結構中逐一提取元素,放在循環(huán)變量中,對于每個所提取的元素執(zhí)行一次語句塊,for語句的循環(huán)執(zhí)行次數(shù)是根據(jù)遍歷結構中元素個數(shù)確定的。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? for<循環(huán)變量> in <遍歷結構>:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?<語句塊>
遍歷結構可以是字符串、文件、range()函數(shù)或組合數(shù)據(jù)類型等。??
對于字符串,可以逐一遍歷字符串的每個字符,基本使用方式瑞啊:
?????????????????????????????for<循環(huán)變量> in <字符串變量>:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?<語句塊>

使用range()函數(shù),可以指定語句塊的循環(huán)次數(shù),基本使用方式如下:
? ??????????????????????????????for<循環(huán)變量> in range(<循環(huán)次數(shù)>):
??????????????????????????????????????<語句塊>

遍歷循環(huán)還有一種擴展模式,使用方法如下:
? ??????????????????????for <循環(huán)變量> in <遍歷結構>:
? ??????????????????????????????<語句塊1>
? ??????????????????????else:
? ??????????????????????????????<語句塊2>
當for循環(huán)正常執(zhí)行之后,程序會繼續(xù)執(zhí)行else語句中的內(nèi)容,else語句只在循環(huán)正常執(zhí)行之后才執(zhí)行并結束,因此可以在<語句塊2>中放置判斷循環(huán)執(zhí)行情況的語句。


無錫循環(huán):while
Python通過保留字while實現(xiàn)無限循環(huán)
while <條件>:
? ??<語句塊>
當程序執(zhí)行到while語句時,判斷條件如果為True,執(zhí)行循環(huán)體語句,語句結束后返回再次判斷while語句的條件;當條件為False時,循環(huán)終止,執(zhí)行與while同級別縮進的后續(xù)語句。
>>>n = 0
>>>while n < 10:
? ??????????????print(n)
? ??????????????n=n+3
0
3
6
9
無限循環(huán)也有一種使用保留字else的擴展模式,使用方法如下:
while <條件>:
????<語句塊1>
else:
????<語句塊2>
在這種擴展模式中,當while循環(huán)正常執(zhí)行之后,程序會繼續(xù)執(zhí)行else語句中內(nèi)容。else語句只在循環(huán)正常執(zhí)行后才執(zhí)行,因此,可以在語句塊2中放置判斷循環(huán)執(zhí)行情況的語句。
s,idx="PY",0
while idx < len(s):
????print("循環(huán)執(zhí)行中: " + s[idx])
? ? idx += 1
else:
????s = "循環(huán)正常結束"
print(s)
至于循環(huán)得到的結果? 大家可以去嘗試下? 畢竟自己動手了才能得到想要的
循環(huán)控制:break和continue
循環(huán)結構有兩個輔助循環(huán)控制的保留字:break和continue。break用來跳出最內(nèi)層for或while循環(huán),脫離該循環(huán)后程序從循環(huán)后代碼繼續(xù)執(zhí)行。
while True:
????s = input("請輸入一個名字(按Q退出): ")
????if s == "Q":
????????break
????print("輸入的名字是:", s)
print("程序退出")
如果有2層或多層循環(huán),break退出最內(nèi)層循環(huán)。
continue用來結束當前當次循環(huán),即跳出循環(huán)體中下面尚未執(zhí)行的語句,但不跳出當前循環(huán)。
for s in "PYTHON":
if s == "Y" or s == "y":
????? continue
print(s, end="")
嘗試敲一遍? 看看會輸出什么?/?
continue語句和break語句的區(qū)別是:continue語句只結束本次循環(huán),不終止整個循環(huán)的執(zhí)行,而break具備結束循環(huán)的能力。
程序的異常處理
Python程序一般對輸入有一定要求,但當實際輸入不滿足程序要求時,可能會產(chǎn)生程序的運行錯誤。

由于使用了eval()函數(shù),如果用戶輸入不是一個數(shù)字則可能報錯。這類由于輸入與預期不匹配造成的錯誤有很多種可能,不能逐一列出可能性進行判斷。為了保證程序運行的穩(wěn)定性,這類運行錯誤應該被程序捕獲并合理控制。
Python語言使用保留字try和except進行異常處理,基本的語法格式如下:
try:
????<語句塊1>
except:
????<語句塊2>
語句塊1是正常執(zhí)行的程序內(nèi)容,當執(zhí)行這個語句塊發(fā)生異常時,則執(zhí)行except保留字后面的語句塊2。
try:
? ? n = eval(input("請輸入一個數(shù)字: "))
? ? print("輸入數(shù)字的3次方值為: ", n**3)
except:
????print("輸入錯誤,請輸入一個數(shù)字!")
除了輸入之外,異常處理還可以處理程序執(zhí)行中的運行異常。

try:
????for i in range(5):
? ????? print(10/i, end=" ")
except:
? ? print("某種原因,出錯了!")
可以看下,結果會走下面的異常提示,而不是出現(xiàn)崩潰現(xiàn)象了。
以上就是本章的內(nèi)容了,基本上程序的控制結構的一些內(nèi)容也就講完了。