條件迴圈結構
阿新 • • 發佈:2020-07-24
條件語句
1. if 語句
- if 語句的
expr_true_suite
程式碼塊只有當條件表示式expression
結果為真時才執行,否則將繼續執行緊跟在該程式碼塊後面的語句。 - 單個 if 語句中的
expression
條件表示式可以通過布林操作符and
,or
和not
實現多重條件判斷。
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 是一個質數