天天看點

Python基本文法_控制流語句_if/while/for目錄前言軟體環境If 語句While循環for 循環最後

<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