Python 入門 (2) - 控制流程 (control flow)

關於控制流程 (control flow):

控制流程是指程式中根據條件或其他因素來控制程式執行流程的方法。它允許根據不同的條件執行不同的程式碼塊,或者重複執行特定的程式碼塊。

Python 控制流程 (control flow):

在 Python 中,控制流程主要分成下列幾種:

1. 序列式流程:

在序列式流程中操作或指令是由上到下,一個接一個地執行:

greeting = "Hello"                      # step 1
name = "Alice"                          # step 2
sentence = greeting + ", " + name + "!" # step 3
sentence = f"{greeting}, {name}!"       # step 4

2. 條件式流程:

條件式流程(conditional flow)是指在程式執行過程中根據條件的真假 (True/False),來控制程式碼的執行流程的過程

下面的例子我們先設置了一個變數 age 的值為 20。然後使用 if 和 else 來檢查 age 是否大於或等於 18。

age = 20

# 使用 if 和 else 進行條件式流程
if age >= 18:
    # age >= 18 的時候才會執行
    print("你已經成年了!")
    print("你可以投票!")
else:
    # age < 18 的時候才會執行
    print("你還未成年。")
    print("你不可以投票!")
  • 在 Python 中,使用縮排 (句首加空白) 來表示程式碼的區塊 (code block)
  • 因為 age = 20 所以程式會執行 if age >= 18 區塊中的程式碼
  • 與序列式流程不同的地方是,因為 age = 20 所以 else 的條件不成立導致區塊中的程式不會被執行

另外錯誤的縮排,會造成語意上的錯誤:

if age >= 18:
    print("你已經成年了!")
    print("你可以投票!")
else:
    print("你還未成年。")
print("你不可以投票!")  # 錯誤的縮排,不論 age 的值為何都會執行

當我們有多個條件要判斷時可以使用 if-elif-else 的方式進行判斷,例如:

score = 85

if score >= 90:
    print("A")
elif score >= 80:
    print("B")
elif score >= 70:
    print("C")
elif score >= 60:
    print("D")
else:
    print("F")

3. For 迴圈:

for 迴圈是一種用於重複執行程式的一種流程

通常 for 迴圈會與 range() 函式結合使用,可以用來生成指定範圍內的整數序列

# range 的終指值為 5 預設起始值為 0 所以 num 為 0~4
for num in range(5):
    print(num)

程式執行的結果:

0
1
2
3
4

range() 起始的值為 0,所以只會印出 0~4

range() 還可以接受起始值、終止值和步長作為參數,例如:

# 起始值=1、終止值=10和步長=2(每次都+2)
for i in range(1, 10, 2):
    print(i)  

程式執行的結果:

1
3
5
7
9

4. While 迴圈:

while 迴圈當條件為真(True)時,迴圈內的程式碼將會被執行。然後條件再次被檢查,如果仍然為真,則再次執行,直到條件為假 (False)。

num = 0 # 將 num 設為 0

while num < 10: # 判斷是否小於 10
    print(num)
    num += 1 # 每次執行後將 num 的值加 1,再判斷是否小於 10

程式執行的結果:

0
1
2
3
4
5
6
7
8
9

無窮迴圈是一種迴圈結構,其條件永遠保持為真,導致迴圈永遠不會結束。

下面的例子中我們將 num += 1 的程式刪除,這樣 num 的 值會一直為 0 並形成無限循環。

num = 0 # 將 num 設為 0

while num < 10: # 判斷是否小於 10
    print(num)

留言

熱門文章