1. if 語句:根據條件傳回的結果執行相應的代碼塊
2. for 循環:通過周遊容器對象的索引來實作循環
3. while 循環:根據條件傳回是否為true來判斷是否執行循環體
在本篇中主要會介紹python中控制流語句,以及一些在應用上的經驗。
系統
ubuntukylin 14.04
軟體
python 2.7.6
ipython 4.0.0
文法格式:
1
2
3
4
5
6
if語句可以根據expression的bool值來執行相應的代碼組。需要注意的是,在python中并沒有switch..case語句來實作定值判斷。但是可以使用elif語句和‘ == ’來實作類似的效果。
代碼組:以關鍵字開始的縮進相同的一組代碼組成的代碼塊。其中首行句末的 : 号辨別代碼塊的開始。即是在python文法中,以關鍵字為首的語句行中必須以 : 結尾。
一個域值判斷的小例子:
7
8
9
10
11
12
output :
13
14
while語句需要根據expression的傳回值來判斷是否繼續執行循環。值得注意的是,為了避免永循環的出現,一般需要寫入控制循環次數或終止循環的條件。即是在循環過程中需要有expression == false的時候,而且當循環條件為false時,則執行else代碼塊。當然else語句是可選的,當else存在時通常會至少被執行一次,而且else代碼塊一般用于實作循環結束後的清理工作。同時while循環也可以使用下面的附加語句來實作循環中斷。
break語句會令語句流跳到循環體外,以此來提前終止循環,接着執行循環下面的語句。
注意:通常結合if語句來實作:當滿足條件時,則退出循環。下面是一個小例子:
相對的,有時并不希望終止整個循環操作,而是希望提前結束本次循環,并接着執行下一次循環,這時可以使用continue語句。continue語句會跳過循環體中下面尚未執行的語句,轉到循環體結束點之前,接着執行expression,然後再進行下一次是否執行循環的判斷。這樣可以達到提高程式執行效率的效果。
15
16
17
18
上面的小例子會将1-100之間能被5整除的數字列印出來。
其中容器可以是list、tuple、dictionary、string等,本質上是利用for循環的疊代器iterator,來逐個周遊容器中的項目,并且逐一指派給疊代變量,然後執行代碼塊,直到周遊完成循環結束。
19
20
21
22
上面的例子使用了兩種周遊字典的方法。
example1:先調用items( )将字典轉化為list和tuple的複合資料類型,再周遊每一個list中的tuple元素。
example2:周遊dictionary的key,調用dic[key]擷取key映射的value。
python控制流語句具有非常強大的功能,例如:利用for循環來擷取檔案内容,實作ddictionary到string的轉換等等。尤其是for循環和list解析的特性會碰撞出非常有趣的火花。在往後的篇章裡我們一起去記錄。