[init_statements]
while test_expression :
body_statements
[iteration_statements]
# 迴圈的初始化條件 count_i = 0 # 當count_i小於10時,執行迴圈體 while count_i < 10 : print("count:", count_i) # 疊代語句 count_i += 1 print("迴圈結束!")在使用 while 迴圈時,一定要保證迴圈條件有變成假的時候:否則這個迴圈將成為一個死迴圈,永遠無法結束這個迴圈。例如如下程式碼:
# 下面是一個死迴圈 count_i2 = 0 while count_i2 < 10 : print("不停執行的死迴圈:", count_i2) count_i2 -=1 print("永遠無法跳出的迴圈體")在上面程式碼中,count_i2 的值越來越小,這將導致 count_i2 的值永遠小於 10,count_i2<10 迴圈條件一直為 True,從而導致這個迴圈永遠無法結束。
# 迴圈的初始化條件 count_i = 0 # 當count小於10時,執行迴圈體 while count_i < 10: print('count_i的值', count_i) count_i += 1執行上面程式,將會看到執行一個死迴圈。這是由於 count_i += 1 程式碼沒有縮排,這行程式碼就不屬於迴圈體。這樣程式中的 count_1 將一直是 0,從而導致 count_i < 10 一直都是 True,因此該迴圈就變成了一個死迴圈。
a_tuple = ('fkit', 'crazyit', 'Charli') i = 0 # 只有i小於len(a_list),繼續執行迴圈體 while i < len(a_tuple): print(a_tuple[i]) # 根據i來存取元組的元素 i += 1執行上面程式,可以看到如下輸出結果:
fkit crazyit Charli
按照上面介紹的方法,while 迴圈也可用於遍歷列表。src_list = [12, 45, 34,13, 100, 24, 56, 74, 109] a_list = [] # 定義儲存整除3的元素 b_list = [] # 定義儲存除以3餘1的元素 c_list = [] # 定義儲存除以3餘2的元素 # 只要src_list還有元素,繼續執行迴圈體 while len(src_list) > 0: # 彈出src_list最後一個元素 ele = src_list.pop() # 如果ele % 2不等於0 if ele % 3 == 0 : a_list.append(ele) # 新增元素 elif ele % 3 == 1: b_list.append(ele) # 新增元素 else: c_list.append(ele) # 新增元素 print("整除3:", a_list) print("除以3餘1:",b_list) print("除以3餘2:",c_list)