1.順序控制流
基本語法:
if 條件:
代碼塊1
else:
代碼塊2
- 使用順序控制流的時候,首先我們需要判斷
if條件的真假,真則輸出代碼塊1,否則輸出代碼塊2; - 而這時需要用到真值表; 一般來說,
0、""空字符串、()空元組、[]空列表、{}空字典、None等空值的都為False;而像1、"Str"字符串等有值的都為 True;
2.分支控制流
基本語法:
if 條件1:
代碼塊1
elif 條件2:
代碼塊2
elif 條件3:
代碼塊3
else:
代碼塊4
- 分支控制流,就是除了
if和else以外,再加上不定量的elif,執(zhí)行順序是自上而下,滿足條件則執(zhí)行 - 如上例子中,就是滿足哪個條件語句,輸出哪個條件下面的代碼塊;
3.嵌套控制流
基本語法:
if 條件1:
代碼塊1
elif 條件2:
if 條件2.1:
代碼塊2.1
elif 條件2.2:
代碼塊2.2
else:
代碼塊2.3
elif 條件3:
代碼塊3
else:
代碼塊4
- 嵌套控制流是在分支控制流基礎(chǔ)上,再嵌套新的控制流,如上述例子所示,在
elif條件2下面在嵌套一個新的if控制流; - 且嵌套控制流的執(zhí)行順序同分支控制流相同,自上而下滿足條件則執(zhí)行相應(yīng)代碼塊;
4.循環(huán)控制流
(1)while循環(huán)
例:
a = 5
while a > 1:
print('yes')
a -= 1
- 第一次循環(huán)滿足
while循環(huán)a > 1的條件時,則開始循環(huán),執(zhí)行print語句輸出yes; - 第二次循環(huán)如果還滿足循環(huán)條件,則繼續(xù)print執(zhí)行語句輸出yes;
- 一直到循環(huán)不滿足條件時(即 a 不再大于 1),循環(huán)終止,不再執(zhí)行;
- 所以最終結(jié)果是輸出四個yes;
(2)while else循環(huán)
例1:
a = 5
while a > 1:
print('yes')
a -= 1
else:
print('循環(huán)結(jié)束')
例2:
a = 5
while a > 1:
print('yes')
a -= 1
if a == 2:
break
else:
print('循環(huán)結(jié)束!')
-
while else循環(huán)和while循環(huán)不同的地方在于,如果是正常終止的循環(huán),也就是像例1一樣的沒有 break的循環(huán),最后一次循環(huán)完畢后,不僅會輸出4個yes,還會接著執(zhí)行else中的語句,輸出“循環(huán)結(jié)束”; - 如果是像例2一樣在循環(huán)里面加上了一個新的
if條件 和break語句時,則只要滿足了if條件循環(huán)就會直接終止,不再執(zhí)行任何語句,也就是跳出循環(huán);
(3)for循環(huán)
例:
for i in range(5):
print(i)
- for循環(huán)里面當(dāng)滿足
if循環(huán)條件時,則循環(huán)一直執(zhí)行,不滿足則退出; - 上述循環(huán)輸出答案為
0,1,2,3,4; - 注:
range函數(shù)是一個可迭代對象,比如上述range(5)會生成從0到5區(qū)間( 即[0,9]或[0,10) )的所有整數(shù),range就像數(shù)學(xué)中的區(qū)間 一樣,左邊是閉區(qū)間,右邊是開區(qū)間;
(4)for else循環(huán)
例:
i = None
for i in range(5):
print(i)
else:
print(i)
-
for else循環(huán)和while else循環(huán)有點類似,如果是正常退出的,當(dāng)執(zhí)行完for循環(huán)的最后一次循環(huán)時,會接著循環(huán)else里面的語句,如上述例子中,在輸出了1,2,3,4之后會繼續(xù)執(zhí)行else中的語句,此時i = 4 ,所以會繼續(xù)輸出一個4; - 而如果在for循環(huán)里面加了break,那么只要滿足break的條件,循環(huán)就會終止;
(5)continue 語句
例:
#方法一
for i in range(1,11):
if i % 2:
print(i)
#方法二
for i in range(1,11):
if i % 2:
continue
print(i)
- 循環(huán)中如果使用了
continue關(guān)鍵字,當(dāng)條件為真的時候,會執(zhí)行continue,直接進行下一次新的循環(huán),不會再繼續(xù)執(zhí)行continue后面的語句; - 條件為假的時候情況正好相反,
continue不會執(zhí)行,而是會執(zhí)行continue后面的語句; - 所以上述例1輸出:
1,3,5,7,9,例2正好相反,輸出:2,4,6,8,10; - 注:
range類的使用,range(start,stop[,step]) -> range object。如果直接輸出range,會實現(xiàn)一個魔術(shù)方法,str()或者repr()方法,返回自己本身。如果想打印range里面的內(nèi)容,可以把range包裝成列表list的形式;
(6)break 語句
例:
flag = 0
for i in range(1,100):
if i % 3:
print(i)
flag += 1
if flag >= 5:
break
-
break關(guān)鍵字和continue有點不同,如果條件為真的時候,會執(zhí)行break,直接跳出循環(huán); - 條件為假時,不會執(zhí)行
break,而是執(zhí)行break后面的語句; - 所以上述例子中會輸出:
1,2,4,5,7 - 注意:在 Python 中,
continue和break只能影響當(dāng)前所在的這一層循環(huán),如果是在內(nèi)部循環(huán)中進行continue和break,那么外層循環(huán)不會受到影響;