Python迴圈 (Python 教學) – while就是在條件句作立, 即true的情況下, 繼續執行while的block內的邏輯, 直至條件句的結果為false. 其重點在條件句的成立與while 內 BLOCK的重用.
迴圈的重要性
- 迴圈的重要性在於重用block 內的logic, 免得一直地寫下重覆的code.
- 而為何用while? 我個人覺得因為它能補助for loop的不足. 有些情況下是用while比for適合的, 例如條件句的variable不是以固定的增距來運作, 又或者是variable不需要Programmer的code來更新等.
While於Python之應用
- 在一個無限looping內, 用if的條件句(即當到了一定的條件), 就break (跳出迴圈).
- 如while的條件句內的variable會自動更新, 如while(expiredDate < DateTime.Now).
- 條件句內的varaible需要用while的block內計算出來.
- 條件句內的varaible需要用while的block內的datasource, 來取出variable的值.
While於Python之應用例子
- 如在一些IOT的project內, 若取GPS時, 有時是要用Timer加while的, 基於baud rate的關係, 有時取不到, 有時取不完整, 所以有時要再來一次, 直至取到值為止, 當取到温度值後就跳出迴圈.
- 也有一些IOT的Project, 根本不想while停止, 只想一直運行下去至死機, 例如有些裝置只有單一用途, 如取温度, 最多只以Sleep停頓一下, 那用while非常合適.
- 如Automation, 我想在某情況下自動寄出SMS, 那我最少就要運行一次, 直至成功或失敗多於某幾次, 那用do..while就合適了.
- 如最近我寫了一個類似textbox的control, 要一個一個字串取讀來計算在touch時textbox中的 cursor 位置, 我就用了這個方法.
- 如有大量Data, 但不想太花時間用盡全部, 用RNN把Model train至某一個Accuracy止, 用while就可了.
While應用一覽表
本篇暫時只以基礎的介紹, 以下為一些例子顯示出while的用法. Let’s Start!
句型 | 次序: |
while condition: // code block to be executed | condition 條件如乎合, 繼續code block to be executed condition 條件如乎合, 繼續code block to be executed …… 直至 condition 條件不乎合, 跳出LOOP |
例子 | |
a = 2; b = 3; while a + b < 20: a += 2; b += 3; | 1) a + b = 5, 5 小於 20, 所以條件乎合, 繼續 2) a += 2; b += 3; 3) a + b = 10, 10 小於 20, 所以條件乎合, 繼續 ……. 直至 a + b = 20, 20 等於 20, 條件不乎合, 跳出LOOP |
句型 | 次序: |
while True: if condition: break; // code block to be executed | // code block to be executed condition 條件如乎合, 繼續 //code block to be executed condition 條件如乎合, 繼續 …… 直至 condition 條件不乎合, 跳出LOOP |
例子 | |
a = 2; b = 3; while True: if a + b < 20: break; a += 2; b += 3; | 1) a += 2; b += 3; 2) a + b = 5, 5 小於 20, 所以條件乎合, 繼續 3) a += 2; b += 3; 4) a + b = 10, 10 小於 20, 所以條件乎合, 繼續 ……. 直至 a + b = 20, 20 等於 20, 條件不乎合, 跳出LOOP |
相關頁面:
Python 條件句 – 學會 if 的基礎用法 – 了解 Control Flow 的流程
Python 迴圈 – For Loop, For Each 迴圈的基礎用法 – 用BLOCK把CODE重用起來
參考資料: