Python之控制流

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
  • 分支控制流,就是除了 ifelse 以外,再加上不定量的 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 中,continuebreak 只能影響當(dāng)前所在的這一層循環(huán),如果是在內(nèi)部循環(huán)中進行 continuebreak,那么外層循環(huán)不會受到影響;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容