流程控制(一)
阿新 • • 發佈:2022-03-08
流程控制理論
流程控制簡介
流程控制是指在程式執行時,個別的指令執行或求值的順序。所謂的流程控制其實就是控制事物執行的流程、順序。
預備知識
- python中使用縮排來表示程式碼的從屬關係,縮排的內容是子程式碼,未縮排的是父程式碼。
- 並不是所有程式碼都可以有子程式碼。
- 如果多行程式碼從屬於同一個父程式碼,那需要注意所有子程式碼應該有相同的縮排。
- 具有相同縮排量的程式碼之間是順序結構執行流程。
注:如果一行程式碼的結尾是冒號結束,那這行程式碼必有子程式碼。即下一行必定要縮排
流程結構的分類
流程結構分為三大類:順序結構、分支結構、迴圈結構。
順序結構
順序結構從字面意思理解就是根據程式碼位置,自上而下依次執行。
分支結構
分支結構是給出一定的條件,根據判斷結果的不同,向不同的方向執行。
1. 單 if 分支結構
# 基礎結構: if 判別條件: #判別條件是否成立 子程式碼塊 #判別條件成立時,所執行的程式碼(可多行) 例: score = 78 # 將78賦值給score if score >= 60: # 判斷score是否大於等於60 print('及格') # score >= 60為真時執行此程式碼
2. if與else分支結構
# 基礎結構: if 判別條件: #判別條件是否成立 子程式碼塊 #判別條件成立時,所執行的程式碼(可多行) else: 子程式碼塊 #判別條件不成立時,所執行的程式碼(可多行) 例: score = 78 # 將78賦值給score if score >= 60: # 判斷score是否大於等於60 print('及格') # score >= 60為真時執行此程式碼 else: print('掛科')
3. if與elif與else分支結構
# 基礎結構:
if 判別條件a: #判別條件是否成立
子程式碼塊 #判別條件成立時,所執行的程式碼(可多行)
elif:判別條件2:
子程式碼塊 #判別條件a不成立但判別條件二成立時,所執行的程式碼(可多行),此處elif可以有很多個
else:
子程式碼塊 #判別條件a,b都不成立時,所執行的程式碼(可多行)
例:
score = 78 # 將78賦值給score
if score >= 80: # 判斷score是否大於等於80
print('優秀') # score >= 80為真時執行此程式碼
elif score >= 60: # 判斷score是否大於等於60,
print('及格') # score >= 60為真時執行此程式碼,需要注意的是,第一個if條件預設不成立
else:
print('掛科') # score < 60時執行此程式碼
4. if的巢狀結構
if巢狀結構是指if語句裡還有if語句。滿足在已經選擇的條件裡進行進一步選擇。
# 基礎結構:
if 判別條件1: #判別條件是否成立
if 判別條件2:
子程式碼塊 #判別條件1成立且判別條件2成立時,所執行的程式碼(可多行)
else:
子程式碼塊 #判別條件1成立判別條件2不成立時,所執行的程式碼(可多行)
else:
子程式碼塊 #判別條件1不成立時,所執行的程式碼(可多行)
例:
score = 85
rank = 6
if score > 80:
if rank < 5:
print('nice done')
else:
print('cheer')
else:
print('a little bad')
迴圈結構
迴圈結構是指根據某些條件的判斷結果,來決定進行下一步,還是重複進行相同的事。不過這裡需要注意的是,如果一個程式或者一串程式碼持續執行,無法終止的話,就是一串死迴圈。在實際問題中,應該需要滿足一定的條件進行迴圈,在不滿足該條件時,會跳出迴圈體。
while迴圈
# 基礎結構:
while 判別條件: # 當條件成立時執行子程式碼(迴圈體程式碼)。
條件成立後執行的迴圈體程式碼 #迴圈體程式碼執行結束後判斷判別條件是否成立,如果成立,接著執行迴圈體程式碼,至判別條件不成立,跳出迴圈
例:
count = 0
while count < 10: # 判斷count是否小於10
count += 2
print(count) # count小於10,然後執行這兩行程式碼直到第六次迴圈,count = 10,跳出迴圈
while + break 跳出本層迴圈
# 基礎結構:
while 判別條件: # 當條件成立時執行子程式碼(迴圈體程式碼)。
條件成立後執行的迴圈體程式碼 #迴圈體程式碼執行結束後判斷判別條件是否成立,如果成立,接著執行迴圈體程式碼,至判別條件不成立,跳出迴圈
break
例:
count = 0
while count < 10: # 判斷count是否小於10
if count == 2: # count小於10,然後執行子程式碼判別count是否等於2,count = 2時,執行if的子程式碼
print(count)
break #執行迴圈遇到break直接結束此層迴圈
else:
count += 2 # count不等於2時,讓count = count + 2
while + continue 跳出本次迴圈
# 基礎結構:
while 判別條件: # 當條件成立時執行子程式碼(迴圈體程式碼)。
條件成立後執行的迴圈體程式碼 #迴圈體程式碼執行結束後判斷判別條件是否成立,如果成立,接著執行迴圈體程式碼,至判別條件不成立,跳出迴圈
break
例:
count = 0
while count < 5: # 判斷count是否小於5
if count == 3: # 判斷count是否等於3
count += 1
continue # 執行迴圈在count =3 遇到continue直接結束此次迴圈,重新回到判別條件位置重新執行
print(count)
count += 1