Python - 控制流



Python 程式控制流由各種型別的 條件語句迴圈函式 呼叫來控制。預設情況下,計算機程式中的指令按順序執行,從上到下,或從開始到結束。但是,此類順序執行的程式只能執行簡單的任務。我們希望程式具有決策能力,以便根據不同的條件執行不同的步驟。

大多數程式語言,包括 Python,都提供了控制指令執行流程的功能。通常,任何程式語言中都有兩種型別的控制流語句,Python 也支援它們。

決策語句

決策語句用於 Python 程式中,使它們能夠根據某個布林表示式的值來決定要執行哪個備選指令組。

下圖說明了決策語句的工作原理:

decision making statements

if 語句

Python 提供 if..elif..else 控制語句作為決策的一部分。它由三個不同的塊組成,分別是 if 塊、elif(else if 的縮寫)塊和 else 塊。

示例

以下是一個簡單的示例,它使用了 if..elif..else。您可以嘗試使用不同的分數執行此程式並驗證結果。

marks = 80 
result = ""
if marks < 30:
   result = "Failed"
elif marks > 75:
   result = "Passed with distinction"
else:
   result = "Passed"

print(result)

這將產生以下結果

Passed with distinction

match 語句

Python 支援 Match-Case 語句,它也可以用作決策的一部分。如果某個模式與表示式匹配,則該 case 下面的程式碼將執行。

示例

以下是一個簡單的示例,它使用了 match 語句。

def checkVowel(n):
   match n:
      case 'a': return "Vowel alphabet"
      case 'e': return "Vowel alphabet"
      case 'i': return "Vowel alphabet"
      case 'o': return "Vowel alphabet"
      case 'u': return "Vowel alphabet"
      case _: return "Simple alphabet"
print (checkVowel('a'))
print (checkVowel('m'))
print (checkVowel('o'))

這將產生以下結果

Vowel alphabet
Simple alphabet
Vowel alphabet

迴圈或迭代語句

大多數流程都需要重複執行一組指令。在程式設計術語中,這稱為迴圈。如果流程不是指向下一步,而是重定向到任何前面的步驟,則構成一個迴圈。

下圖說明了迴圈的工作原理:

looping_works

如果控制無條件地返回,則會形成一個無限迴圈,這並不理想,因為其餘程式碼將永遠不會執行。

在條件迴圈中,語句塊的重複迭代會一直持續到滿足某個條件為止。Python 支援許多迴圈,例如 for 迴圈、while 迴圈,我們將在接下來的章節中學習。

for 迴圈

for 迴圈 迭代任何序列(如列表、元組或字串)的元素。

示例

以下是一個示例,它使用 For 迴圈遍歷 Python 中的陣列

words = ["one", "two", "three"]
for x in words:
  print(x)

這將產生以下結果

one
two
three

while 迴圈

while 迴圈 重複執行目標語句,只要給定的布林表示式為真。

示例

以下是一個示例,它使用 While 迴圈在 Python 中列印前 5 個數字

i = 1
while i < 6:
  print(i)
  i += 1

這將產生以下結果

1
2
3
4
5

跳轉語句

跳轉語句用於透過中斷程式的當前流程來跳轉到特定語句。在 Python 中,有兩個跳轉語句 breakcontinue

break 語句

它終止當前迴圈並在下一條語句處恢復執行。

示例

以下示例演示了 break 語句的使用:

x = 0

while x < 10:
    print("x:", x)
    if x == 5:
        print("Breaking...")
        break
    x += 1

print("End")

這將產生以下結果

x: 0
x: 1
x: 2
x: 3
x: 4
x: 5
Breaking...
End

continue 語句

它跳過程式塊的執行並將控制權返回到當前迴圈的開頭以開始下一次迭代。

示例

以下示例演示了 continue 語句的使用:

for letter in "Python":
    # continue when letter is 'h'
    if letter == "h":
        continue
    print("Current Letter :", letter)

這將產生以下結果

Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : o
Current Letter : n
廣告