1. 程式人生 > 其它 >流程控制(一)

流程控制(一)

流程控制理論

流程控制簡介

 流程控制是指在程式執行時,個別的指令執行或求值的順序。所謂的流程控制其實就是控制事物執行的流程、順序。

預備知識

  • 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