<a href="#%E7%9B%AE%E5%BD%95">目錄</a>
<a href="#%E5%89%8D%E8%A8%80">前言</a>
<a href="#%E8%BD%AF%E4%BB%B6%E7%8E%AF%E5%A2%83">軟體環境</a>
<a href="#if-%E8%AF%AD%E5%8F%A5">If 語句</a>
<a href="#while%E5%BE%AA%E7%8E%AF">While循環</a>
<a href="#break">break</a>
<a href="#continue">continue</a>
<a href="#for-%E5%BE%AA%E7%8E%AF">for 循環</a>
<a href="#%E9%81%8D%E5%8E%86string">周遊String</a>
<a href="#%E9%81%8D%E5%8E%86tuple">周遊Tuple</a>
<a href="#%E9%81%8D%E5%8E%86list">周遊List</a>
<a href="#%E9%81%8D%E5%8E%86dictionary">周遊Dictionary</a>
<a href="#%E6%9C%80%E5%90%8E">最後</a>
控制流語句用于改變程式語句流(預設為自上而下順序執行)的執行順序,其中Python的基本控制流語句,主要有以下3種:
1. if 語句:根據條件傳回的結果執行相應的代碼塊
2. for 循環:通過周遊容器對象的索引來實作循環
3. while 循環:根據條件傳回是否為True來判斷是否執行循環體
在本篇中主要會介紹Python中控制流語句,以及一些在應用上的經驗。
系統
Ubuntukylin 14.04
軟體
Python 2.7.6
IPython 4.0.0
文法格式:
If語句可以根據expression的bool值來執行相應的代碼組。需要注意的是,在Python中并沒有switch..case語句來實作定值判斷。但是可以使用elif語句和‘ == ’來實作類似的效果。
代碼組:以關鍵字開始的縮進相同的一組代碼組成的代碼塊。其中首行句末的 : 号辨別代碼塊的開始。即是在Python文法中,以關鍵字為首的語句行中必須以 : 結尾。
一個域值判斷的小例子:
Output :
While語句需要根據expression的傳回值來判斷是否繼續執行循環。值得注意的是,為了避免永循環的出現,一般需要寫入控制循環次數或終止循環的條件。即是在循環過程中需要有expression == False的時候,而且當循環條件為False時,則執行else代碼塊。當然else語句是可選的,else代碼塊一般用于實作循環結束後的清理工作。同時While循環也可以使用下面的附加語句來實作循環中斷。
NOTE: else 關鍵字存在時也不一定必須執行,當 while 循環中有 break 時, else 不執行。
break語句會令語句流跳到循環體外,以此來提前終止循環,接着執行循環下面的語句。
Note:在嵌套循環中,break語句隻會跳出本層循環,而不會跳出外層循環
注意:通常結合if語句來實作:當滿足條件時,則退出循環。下面是一個小例子:
相對的,有時并不希望終止整個循環操作,而是希望提前結束本次循環,并接着執行下一次循環,這時可以使用continue語句。continue語句會跳過循環體中下面尚未執行的語句,轉到循環體結束點之前,接着執行expression,然後再進行下一次是否執行循環的判斷。這樣可以達到提高程式執行效率的效果。
上面的小例子會将1-100之間能被5整除的數字列印出來。
Python的For循環完全差別于Java或C/C++等程式設計語言,其通過周遊一個容器中所有的索引來決定循環的次數和操作。
其中容器可以是List、Tuple、Dictionary、String等,本質上是利用for循環的疊代器iterator,來逐個周遊容器中的項目,并且逐一指派給疊代變量,然後執行代碼塊,直到周遊完成循環結束。
上面的例子使用了兩種周遊字典的方法。
Example1:先調用items( )将字典轉化為List和Tuple的複合資料類型,再周遊每一個List中的Tuple元素。
Example2:周遊Dictionary的key,調用dic[key]擷取key映射的value。
Python控制流語句具有非常強大的功能,例如:利用for循環來擷取檔案内容,實作Ddictionary到String的轉換等等。尤其是for循環和List解析的特性會碰撞出非常有趣的火花。在往後的篇章裡我們一起去記錄。
Jmilk