Python控制邏輯 — 使用if/else 與迴圈進行控制

Wen Chang
7 min readJan 16, 2020

--

單元二 : Python控制邏輯 — 使用if/else 與迴圈進行控制

Python 以及大多高階語言皆可讓程式設計師使用條件對設計的程式執行邏輯進行控制。在這篇文章讓我們開始學習使用if以及其家族進行執行方向控制,以及使用for與while產生程式執行迴圈。

控制if/else執行邏輯

條件控制 if / else以及elif是依其條件敘述之布林運算結果進而判斷完成執行方向的控制方式。

當我們使用if 語句時,python直譯器會判斷接續在if 後直至冒號 : 的程式碼所輸出的布林值(True / Flase) 決定往後程式執行的位置

if

使用方式

與其他編程語言中的 if 語句一樣,使用方法如下

if condition:
expressions

如果 condition 的值為 True,將會執行 expressions 語句的內容,否則將跳過該語句往下執行。

範例

x = 1
y = 2
z = 3
if x < y:
print('x is less than y')

上述代碼中,if 語句的條件為 x < y 為 True, 那麼將執行條件內部語句,程序將輸出 x is less than y。當我們將代碼修改為一下

if x < y < z:
print('x is less than y, and y is less than z')

在這裡的條件變成了 x < y < z, 其相當於 x < y and y < z, 如果 and 兩邊的條件都為 True 那麼才會返回 True。注意這個用法是 python 語言特有,不鼓勵 大家寫出這樣的代碼,以便其他語言的程序員能夠看懂你的代碼。

If宣告時不附帶任何前述邏輯,因此,使用if進行的控制結構,將會與其前述之條件邏輯完全共享條件宇集環境,並符合其宣告條件敘述之條件邏輯發生之子集

else

使用方式

if condition:
true_expressions
else:
false_expressions

當 if 判斷條件為 True,執行 true_expressions 語句; 如果為 False,將執行 else 的內部的 false_expressions。

範例

x = 1
y = 2
z = 3
if x > y:
print('x is greater than y')
else:
print('x is less or equal to y')

在這個例子中,因為 x > y 將會返回 False, 那麼將執行 else 的分支內容。輸出 x is less or equal to y

x = 4
y = 2
z = 3
if x > y:
print('x is greater than y')
else:
print('x is less or equal y')

在這裡,因為 condition 條件為 True, 那麼將會輸出 x is greater than y。

else宣告時其條件為與前述控制邏輯之條件子集互斥,因此,使用else的控制結構,為其前述之條件邏輯發生之子集條件環境外之所有條件環境宇集

elif

使用方式

if condition1:
true1_expressions
elif condition2:
true2_expressions
elif condtion3:
true3_expressions
elif ...
...
else:
else_expressions

如果有多個判斷條件,那可以通過 elif 語句添加多個判斷條件,一旦某個條件為 True,那麼將執行對應的 expression。並在之代碼執行完畢後跳出該 if-elif-else 語句塊,往下執行。

範例

x = 4
y = 2
z = 3
if x > 1:
print ('x > 1')
elif x < 1:
print('x < 1')
else:
print('x = 1')
print('finish')

因為 x = 4 那麼滿足 if 的條件,則將輸出 x > 1 並且跳出整個 if-elif-else 語句塊,那麼緊接著輸出 finish。如果將 x = -2 那麼將滿足 elif x < 1 這個條件,將輸出 x <1, finish。

使用elif的控制結構宇集,將與其前述之條件邏輯發生之子集條件環境互斥,並符合其宣告條件敘述之條件邏輯發生之子集

迴圈

迴圈方法 for 以及while 是依其條件布林運算結果進而判斷迴圈執行的控制方式。

當我們使用 for 或 while 語句時,python直譯器會判斷接續在 for 或 while後直至冒號 : 的程式碼之序列歷遍(for loop)或布林運算結果(while loop), 決定在迴圈內部程式碼的執行與否

For Loop

Python使用For 迴圈遍歷任何序列與可疊帶物件之內容

使用方式

以 for 進行迴圈的方法 :

for 變數<variable> in 任何序列物件<sequence>:  
   
   執行內容(statements)……

sequence 可為任意序列或可迭代的物件,而可自行命名的 variable 為進行歷遍時序列中的每個對象。

範例

example_list = [1,2,3,4,5,6,7,12,543,876,12,3,2,5]
for i in example_list:
print(i)

輸出的結果為1,2,3,4,5,6,7,12,543,876,12,3,2,5, 內容依次為example_list 中的每一個元素注意Python 是使用縮進表示程序的結構,

如果我們將程式改成這樣編寫

example_list = [1,2,3,4,5,6,7,12,543,876,12,3,2,5]
for i in example_list:
print(i)
print('inner of for')
print('outer of for')

那麼每次循環都會輸出 inner of for,在循環結束後,輸出 outer of for 一次。

While Loop

Python使用while 以布林運算結果判斷進行迴圈控制

使用方式

以 while 進行迴圈的方法:

while 布林條件判斷(condition):執行內容(statements)……

其中 condition 為判斷條件,在 Python 中就是 True 和 False 其中的一個,如果為 True, 那麼將執行 exexpressions 語句,否則將跳過該 while 語句塊接著往下執行。

執行邏輯 :

範例

比如使用while迴圈印出 0–9 的數字

condition = 0
while condition < 10:
print(condition)
condition = condition + 1

輸出的結果將是0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 第一行設置condition 的初始值為0,在進行while 判斷的時候0 < 10 為True, 將會執行while 內部的代碼,首先先打印出該值,然後將condition 值加1,至此將完成一次循環;再condition 的值與10 進行比較,仍然為True, 重複如上過程,至到condiiton 等於10 後,不滿足condition < 10 的條件(False),將不執行while 內部的內容所以10 不會被打印。

--

--