順序結構就是程式從上到下一行行地執行,中間沒有任何判斷和跳轉。如果沒有流程控制,python程式的語句是乙個順序執行流,從上向下依次執行每條語句。
if分支使用布林表示式或布林值作為分支條件來進行分支控制,python的if語句有如下三種形式:
# 第一種形式
if 條件:
執行語句
# 第二種形式
if 條件:
執行語句
else:
執行條件
# 第三種形式
if 條件:
執行語句
elif 條件:
執行語句
//可以有多條elif語句
else :
執行語句
在使用if else分支語句時,一定要先處理包含範圍更小的情形。
if分支語句還可作為表示式,此時if表示式相當於其他語言中的三目運算子。
有時候程式需要佔乙個位、放一條語句,但又不希望這條語句做任何事情,此時就可通過pass語句來實現,可以讓程式更完整。
斷言語句和if分支有點類似,它用於對乙個bool表示式進行斷言,如果該bool表示式為 true,該程式可以繼絞往下執行;否則程式會引發 assertionerror錯誤。
assert斷言的執行邏輯是:
if 條件為false:
程式引發assertionerror錯誤
迴圈語句可以在滿足迴圈條件的情況下,反覆執行某一段**,這段被重複執行的**被稱為迴圈體。當反覆執行這個迴圈體時,需要再合適的時候把迴圈條件改為假,從而結束迴圈;否則迴圈將一直執行下去,形成死迴圈。
while迴圈
while迴圈的語法格式如下:
[init_statements]
while test_expression:
body_statements
[iteration_statements]
在使用while迴圈時,一定要保證迴圈條件有變成假的時候,否則這個迴圈將成為乙個死迴圈,永遠無法結束這個迴圈。
由於列表和元組的元素都是有索引的,因此程式可通過while迴圈、列表或元組的索引來遍歷列表和元組中的所有元素。
for-in迴圈
for-in迴圈專門用於遍歷範圍、列表、元素和字典等可迭代物件包含的元素。for-in迴圈的語法格式如下:
for 遍歷 in 字串|範圍|集合等:
statements
在使用for-in迴圈遍歷列表和元組時,列表或元組有幾個元素,for-in迴圈的迴圈體就執行幾次,針對每個元素執行一次,迴圈計數器會一次被賦值為元素的值。
使用for-in迴圈遍歷字典其實也是通過遍歷普通列表來實現的。
迴圈使用else
python的迴圈都可以定義else**塊,當迴圈條件為false時,程式會執行else**塊。
巢狀迴圈
如果把乙個迴圈放在另乙個迴圈體內,那麼久可以形成巢狀迴圈。巢狀迴圈既可以是for-in迴圈巢狀while迴圈,也可以是while迴圈巢狀do while迴圈。。。。。。即各種型別的迴圈都可以作為外層迴圈,各種型別的迴圈也可以作為內層迴圈。
for表示式
for表示式用於利用其它區間、元組、列表等可迭代物件建立新的列表。for表示式的語法格式如下:
表示式 for 迴圈計數器 in 可迭代物件
for表示式與普通for迴圈的區別有兩點:
for表示式最終返回的是列表,因此for表示式也被稱為列表推導式。
使用break結束迴圈
break用於完全結束乙個迴圈,跳出迴圈體。
使用continue忽略本次迴圈的剩下語句
continue的功能和break有點類似,區別是continue只是忽略當次迴圈的剩下語句,藉著開始下一次迴圈,並不會中止迴圈;而break則是完全中止迴圈本身。
使用return結束方法
python程式中的大部分迴圈都被放在函式或方法中執行,一旦在迴圈體內執行到一條return語句時,return語句就會結束該函式或方法,迴圈自然也隨之結束。
python流程控制 python之流程控制
電腦程式在解決某個具體問題時,包括三種情形,即順序執行所有的語句 選擇執行部分的語句和迴圈執行部分語句,這正好對應著程式設計中的三種程式執行結構流程 順序結構 選擇結構和迴圈結構。事實證明,任何乙個能用計算機解決的問題,只要應用這三種基本結構來寫出的程式都能解決。python語言當然也具有這三種基本...
python之流程控制
python中流程控制之if while for if 用來判斷條件是否符合,而後執行相應的操作 也可單獨使用if用來當滿足條件後執行某個操作 常見 if if else if elif else 典型的三目運算就是利用簡化if語句來獲取所需的值 用來結束迴圈操作 只結束距離自己最近的迴圈體 for...
python之流程控制
1.1.if語句語法 if 條件1 elif 條件2 else 條件3 1.2.if語句應用 登陸功能 name input please enter your name strip password input please enter your passwd strip if name weix...