1. 程式人生 > 實用技巧 >條件迴圈結構

條件迴圈結構

條件語句

1. if 語句

  • if 語句的expr_true_suite程式碼塊只有當條件表示式expression結果為真時才執行,否則將繼續執行緊跟在該程式碼塊後面的語句。
  • 單個 if 語句中的expression條件表示式可以通過布林操作符andornot實現多重條件判斷。

2. if - else 語句

  • Python 提供與 if 搭配使用的 else,如果 if 語句的條件表示式結果布林值為假,那麼程式將執行 else 語句後的程式碼。

if語句支援巢狀,即在一個if語句中嵌入另一個if語句,從而構成不同層次的選擇結構。Python 使用縮排而不是大括號來標記程式碼塊邊界,因此要特別注意else

的懸掛問題。

3. if - elif - else 語句

  • elif 語句即為 else if,用來檢查多個表示式是否為真,並在為真時執行特定程式碼塊中的程式碼。

【例子】

temp = input('請輸入成績:')
source = int(temp)
if 100 >= source >= 90:
    print('A')
elif 90 > source >= 80:
    print('B')
elif 80 > source >= 60:
    print('C')
elif 60 > source >= 0:
    print('D
') else: print('輸入錯誤!')
4. assert 關鍵詞
  • assert這個關鍵詞我們稱之為“斷言”,當這個關鍵詞後邊的條件為 False 時,程式自動崩潰並丟擲AssertionError的異常。
  • 在進行單元測試時,可以用來在程式中置入檢查點,只有條件為 True 才能讓程式正常工作。

【例子】

assert 3 > 7

# AssertionError

迴圈語句

1. while 迴圈

while語句最基本的形式包括一個位於頂部的布林表示式,一個或多個屬於while程式碼塊的縮排語句。

while 布林表示式:
    程式碼塊

while迴圈的程式碼塊會一直迴圈執行,直到布林表示式的值為布林假。

如果布林表示式不帶有<、>、==、!=、in、not in等運算子,僅僅給出數值之類的條件,也是可以的。當while後寫入一個非零整數時,視為真值,執行迴圈體;寫入0時,視為假值,不執行迴圈體。也可以寫入str、list或任何序列,長度非零則視為真值,執行迴圈體;否則視為假值,不執行迴圈體。

2. while - else 迴圈

while 布林表示式:
    程式碼塊
else:
    程式碼塊

while迴圈正常執行完的情況下,執行else輸出,如果while迴圈中執行了跳出迴圈的語句,比如break,將不執行else程式碼塊的內容。

3. for 迴圈

for迴圈是迭代迴圈,在Python中相當於一個通用的序列迭代器,可以遍歷任何有序序列,如str、list、tuple等,也可以遍歷任何可迭代物件,如dict

for 迭代變數 in 可迭代物件:
    程式碼塊

每次迴圈,迭代變數被設定為可迭代物件的當前元素,提供給程式碼塊使用。

4. for - else 迴圈

for 迭代變數 in 可迭代物件:
    程式碼塊
else:
    程式碼塊

for迴圈正常執行完的情況下,執行else輸出,如果for迴圈中執行了跳出迴圈的語句,比如break,將不執行else程式碼塊的內容,與while - else語句一樣。

【例子】

for num in range(10, 20):  # 迭代 10 到 20 之間的數字
    for i in range(2, num):  # 根據因子迭代
        if num % i == 0:  # 確定第一個因子
            j = num / i  # 計算第二個因子
            print('%d 等於 %d * %d' % (num, i, j))
            break  # 跳出當前迴圈
    else:  # 迴圈的 else 部分
        print(num, '是一個質數')

# 10 等於 2 * 5
# 11 是一個質數
# 12 等於 2 * 6
# 13 是一個質數
# 14 等於 2 * 7
# 15 等於 3 * 5
# 16 等於 2 * 8
# 17 是一個質數
# 18 等於 2 * 9
# 19 是一個質數