流程控制
python語句的分類
單行代碼:一行python代碼
代碼塊:多行語句組成的一組代碼
流程控制
- 對計算機執(zhí)行代碼的管控
分類
1. 順序結構
- 系統(tǒng)默認的程序結構,自上而下的執(zhí)行
2. 分支結構/選擇結構
單項分支
當條件表達式為真時,執(zhí)行代碼組中的內(nèi)容,如果為假,不執(zhí)行內(nèi)容
一般結構
if 條件表達式(結果是布爾值):
一條python代碼
一條python代碼
一條python代碼
……
示例代碼
if 55 > 13:
print("This is right")
print("This is right")
print("This is right")
運行結果
This is right
This is right
This is right
雙向分支
- 當條件表達式結果為真時,執(zhí)行if后面的代碼組的內(nèi)容;如果是假,執(zhí)行else后面的 代碼組內(nèi)容
- 真區(qū)間:當表達式結果為真時執(zhí)行的區(qū)域就是真區(qū)間,也叫if區(qū)間
- 假區(qū)間:當表達式結果為假時執(zhí)行的區(qū)域就是真區(qū)間,也叫else區(qū)間
- 一般結構
if 條件表達式(結果是布爾值):
一條python代碼
一條python代碼
一條python代碼
……
else:
一條python代碼
一條python代碼
一條python代碼
……
示例代碼
if 55 > 13:
print("This is right")
print("This is right")
print("This is right")
else:
print("This is wrong")
print("This is wrong")
print("This is wrong")
運行結果
This is right
This is right
This is right
多項分支
- 無論有多少分支,只能執(zhí)行一個分支,而且一旦執(zhí)行某個分支,分支的結構就結束
- 一般結構
if 條件表達式(結果是布爾值):
一條python代碼
一條python代碼
一條python代碼
一條python代碼
……
elif 條件表達式:
一條python代碼
一條python代碼
……
elif 條件表達式:
一條python代碼
一條python代碼
……
elif 條件表達式:
一條python代碼
一條python代碼
……
……
else:
一條python代碼
一條python代碼
一條python代碼
一條python代碼
……
示例代碼
week = 3
if week == 1: # 判斷今天是否是周一
print('Today is Monday')
elif week == 2:
print('Today is Tuesday')
elif week == 3:
print('Today is Wednesday')
elif week == 4:
print('Today is Thursday')
elif week == 5:
print('Today is Friday')
elif week == 6:
print('Today is Saturday')
else:
print('Today is Sunday')
運行結果
Today is Wednesday
巢狀結構
- 分支結構的嵌套
if 條件表達式:
代碼語句
if 條件表達式:
代碼語句
else:
代碼語句
else:
代碼語句
示例代碼
xiaoqu = True
loumen = True
jiamen = True
print("走到了小區(qū)")
if xiaoqu == True:#檢測小區(qū)門是否打開
print("小區(qū)門開")
if loumen == True:#檢測樓門是否打開
print("樓門開")
if jiamen == True:#檢測家門是否打開
print("家門開")
else:
print("家門關")
else:
print("樓門關")
else:
print("小區(qū)門關")
3. 循環(huán)結構
while 型循環(huán)
- 先判斷后執(zhí)行
基本結構
一般格式
while 條件表達式:#條件表達式的結果為真則執(zhí)行
代碼部分
代碼部分
……
帶有變化的結構
一般格式
聲明變量var
while 進入變量var的判斷:
代碼內(nèi)容
代碼內(nèi)容
……
變量var改變的操作
示例代碼
var = 0#初始化變量
while var <= 10:#判斷條件
print("字母")#循環(huán)代碼
var += 1#變量的自增操作
for...in型循環(huán)
- 主要用于遍歷容器類數(shù)據(jù)
- 一般結構
for 自定義變量 in 容器類數(shù)據(jù):
代碼內(nèi)容,可以自定義變量
……
注意:
for的終止條件時所有的數(shù)據(jù)被遍歷
遍歷集合、元組、列表、字符串時會逐一輸出所有的數(shù)據(jù),字典只會輸出鍵
#列表
fruit = ['蘋果','榴蓮','櫻桃','水蜜桃','獼猴桃','西瓜']
for i in fruit:
print(i)
結果:
蘋果
榴蓮
櫻桃
水蜜桃
獼猴桃
西瓜
#字符串
fruit = '蘋果榴蓮櫻桃水蜜桃獼猴桃西瓜'
for i in fruit:
print(i)
結果:
蘋
果
榴
蓮
櫻
桃
水
蜜
桃
獼
猴
桃
西
瓜
#元組
fruit = ('蘋果','榴蓮','櫻桃','水蜜桃','獼猴桃','西瓜')
for i in fruit:
print(i)
結果:
蘋果
榴蓮
櫻桃
水蜜桃
獼猴桃
西瓜
#集合
fruit = {'蘋果','榴蓮','櫻桃','水蜜桃','獼猴桃','西瓜'}
for i in fruit:
print(i)
結果:
西瓜
水蜜桃
櫻桃
榴蓮
蘋果
獼猴桃
字典
#直接遍歷字典,變量僅僅獲取鍵(目錄)
fruit = {1:'蘋果',2:'榴蓮',3:'櫻桃',4:'水蜜桃',5:'獼猴桃',6:'西瓜'}
for i in fruit:
print(i)
結果:
1
2
3
4
5
6
#專門遍歷字典值(數(shù)據(jù))
fruit = {1:'蘋果',2:'榴蓮',3:'櫻桃',4:'水蜜桃',5:'獼猴桃',6:'西瓜'}
for i in fruit.values():
print(i)
結果:
蘋果
榴蓮
櫻桃
水蜜桃
獼猴桃
西瓜
#專門遍歷字典鍵(目錄)
fruit = {1:'蘋果',2:'榴蓮',3:'櫻桃',4:'水蜜桃',5:'獼猴桃',6:'西瓜'}
for i in fruit.keys():
print(i)
結果:
1
2
3
4
5
6
#同時遍歷鍵和值
fruit = {1:'蘋果',2:'榴蓮',3:'櫻桃',4:'水蜜桃',5:'獼猴桃',6:'西瓜'}
for k,v in fruit.items():
print(k,v)
結果:
1 蘋果
2 榴蓮
3 櫻桃
4 水蜜桃
5 獼猴桃
6 西瓜
4. else語句的應用
分支中
和if連用
循環(huán)中
在while語句中使用else語句
一般結構
while 條件表達式:
循環(huán)語句
循環(huán)語句
...
else:
代碼語句
代碼語句
...
示例代碼
i = 0
while i <= 10:
print("a",i)
i += 1
else:
print('end')
在for...in語句中使用else語句
一般結構
for 變量 in 容器:
循環(huán)代碼
……
else:
代碼語句
示例代碼
fruit = {1:'蘋果',2:'榴蓮',3:'櫻桃',4:'水蜜桃',5:'獼猴桃',6:'西瓜'}
for i in fruit:
print(i)
else:
print("not fruit")
5. 其他流程控制語句
break語句
- 主要運用于循環(huán)語句當中
- 作用:終止循環(huán)
示例代碼
#輸出1-100的數(shù)字,運算到44停止循環(huán)
num = 1
while num <= 100:
#判斷是否是44
if num == 44:
break
print(num)
num += 1
continue語句
- 主要運用于循環(huán)語句當中
- 作用:跳過本次循環(huán),開始下一次循環(huán)
示例代碼
#輸出1-100的數(shù)字,不要帶有4的數(shù)字
num = 1
while num <= 100:
if num % 10 == 4 or 40 <= num <= 49:
num += 1 #注意要有加一的語句,不然程序會一直運行
continue
print(num)
num += 1
pass語句
- 占位符,保證語法不出錯
示例代碼
if Ture:
pass
else:
print("A")