Python學習筆記:程序流程控制


Python程序中語句執行的順序包括三種基本控制結構:順序結構、選擇結構、循環結構。

順序結構

程序中語句執行的基本順序按各語句出現位置的先後順序執行,稱爲順序結構

在這裏插入圖片描述

選擇結構

選擇結構可以很據條件來控制代碼的執行分支,也叫分支結構。Python使用if語句來實現分支結構。

分支結構的形式

分支結構包含多種形式:單分支,雙分支,多分支
在這裏插入圖片描述

單分支結構

if語句單分支結構的語法形式如下:

if 條件表達式/(條件表達式):
	語句/語句塊
  1. 條件表達式:可以是關係表達式、邏輯表達式、算術表達式等
  2. 語句/語句塊:可以是單個語句,也可以是多個語句。多個語句的縮進必須對齊一致。當條件表達式的值爲真(True)時,執行if後的語句(塊),否則不做任何操作,控制轉到if語句的結束點。

條件表達式最後評價爲bool值:Ture(真)或False(假)。
Python評價方法如下,如果表達式結果爲:數值類型(0)、空字符串(“”)、空元組(())、空列表([])、空字典({})則其bool值爲False(假),否則bool值爲True(真)

雙分支結構

#if語句雙分支結構的語法如下:
if 條件表達式/(條件表達式):
	語句/語句塊1
else:
	語句/語句塊2

當條件表達式的值爲真(True)時,執行if後的語句/語句塊1,否則執行語句/語句塊2

Python提供了下列條件表達式,來實現等價於其他語言的三元運算符((條件)?語句1:語句2)的功能

條件爲真時的值 if (條件表達式) else 條件爲假時的值

#如果x>0,則y=x,否則y=0
y=x if (x>=0) else 0

多分支結構

該語句的作用是根據不同的條件表達式的值確定執行哪個語句(塊)

#if語句多分支結構語法形式:
if (條件表達式1):
	語句/語句塊1
elif (條件表達式2):
	語句/語句塊2
.
.
.
elif (條件表達式n):
	語句/語句塊n
[else:
	語句/語句塊n+1]

循環結構

循環結構用來重複執行一條或多條語句。使用循環結構,可以減少程序重複書寫的工作量,Python使用for語句和while語句來實現循環結構

可迭代對象

可迭代對象一次返回一個元素,因而適用於循環。Python包括以下幾種可可迭代對象。

  1. 系列(sequence),例如,字符串(str)、列表(list)、元組(tuple)
  2. 字典(dict)
  3. 文件對象
  4. 迭代器對象(iterator)
  5. 生成器函數(generator)

迭代器是一個對象,表示可迭代的數據集合,包括方法__int__()__next__(),可實現迭代功能
生成器是一個函數,使用yield語句,每次產生一個值,也可以用於循環迭代

range對象

Python3內置對象range是一個迭代器對象,迭代時產生指定範圍的數字序列。其格式爲:range(start,stop[,step])

range返回的數值系列從start開始,到stop結束,不包含stop(左閉右開)。如果指定了可選步長step,則序列按步長step增長

注意:Python2中的range的類型爲函數,爲生成器;Python3中的range的類型爲類,是一個迭代器

for循環

for語句用於遍歷可迭代對象集合中的元素,並對集合中的每個元素執行一次相關的嵌入語句。當集合中的所有元素完成迭代後,並控制傳遞給for之後的下一個語句

#for語句的格式
for 變量 in 對象集合:
	循環體語句/語句塊

while循環

與for循環一樣,while也是一個預測試的循環,但是while在循環開始前,並不知道重複執行循環語句序列的次數。while語句按不同條件執行循環語句(塊)零次或多次

#while循環語句格式:
while (條件表達式):
	循環體語句/語句塊

在這裏插入圖片描述

循環的嵌套

在一個循環體內又包含另一個完整循環結構,稱爲循環的嵌套。這種語句結構稱爲多重循環結構。內層循環中還可以包含新的循環,形成多層循環結構

在多層循環中,兩種循環語句(for循環,while循環)可以相互嵌套。多重循環的循環次數等於每一重循環次數的乘積

break語句

break語句用於退出for循環,while循環,即提前結束循環,接着執行循環語句的後繼語句

注意:當多個forwhile語句彼此嵌套時,break語句只應用於最裏層的語句,即break語句只能跳出最近的一層循環

continue語句

continue語句類似break,也必須在forwhile循環中使用。但它結束本次循環,即跳過循環體內自continue下面尚未執行的語句,返回到循環的起始處,並根據循環條件判斷是否執行下一次循環。

continue語句與break語句的區別在於:continue語句僅結束本次循環,並返回到循環的起始處,循環條件滿足的話就開始執行下一次循環,而break語句則是結束循環,跳轉到循環的後繼語句執行

與break相似,當多個for,while語句彼此嵌套時,continue語句只應用於最裏層的語句

else子句

for、while語句可以附帶一個else子句(可選)。如果for、while語句沒有被break語句中止,則會執行else子句,否則不執行

#for循環附帶else語句
for 變量 in 對象集合:
	循環體語句(塊)1
else:
	語句(塊)2


#while循環附帶else語句
while (條件表達式):
	循環體語句(塊)1
else:
	語句(塊)2

循環語句典型示例代碼

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章