Python的range函數與for循環語句


Python的range函數與for循環語句

米粒教育

發布時間:18-11-1518:49

介紹Python for循環語句和range函數的使用,文中主要討論for循環語句,Python的for循環語句類似於shell或是腳本語言中的foreach循環,可以迭代序列對象。
使用range函數可以讓Python的for循環提供類似於傳統的for循環功能。

通過本篇的學習,可以達成如下目標。

  • 使用for循環語句迭代序列對象
  • 掌握range函數的使用方法

Python提供的另外一個循環結構就是for循環語句,Python提供的for循環語句和Java、C++等編程語言提供的for語句不同,Python中的for循環更像是shell或是腳本語言中的foreach循環。
它可以遍歷如列表、元組、字符串等序列成員(列表、元組、字符串也稱為序列),也可以用在列表解析和生成器表達式中。

1、 使用序列項迭代序列對象

通過for循環可以迭代序列對象的所有成員,並在迭代結束后,自動結束循環,其語法如下:

for iter_var in list:

語句塊;

其中,iter_var是迭代變量,指向序列對象的元素,list是可迭代對象。語句塊是循環體,在循環體中可以使用iter_var訪問可迭代對象的元素。

例1:使用Pyhton列表建立一個同學花名冊,使用for循環迭代輸出花名冊內容。

程序初始化一個Python列表,列表中存儲姓名,然后使用for循環語句遍歷Python列表,獲取列表中的每個元素並輸出。程序流程圖如下:

圖1 例1流程圖

 

 

流程圖用到了for循環控制,迭代花名冊列表,並輸出列表元素,迭代結束后自動退出循環,程序結束。

下面根據圖1所示的流程圖給出例1程序代碼。

在for語句的每次循環中,item變量被設置為student列表的當前元素,被print語句使用。

 

 

例1輸出結果如下圖所示。

當用for循環迭代字符串時,迭代變量只會包含單個字符。遍歷字符串序列的功能並不常用,在字符串里查找字符時,更常用的是用in操作符來判斷一個子串或單個字符是否屬於某個字符串。

例2:輸出一個字符串的所有字母序列。

程序初始化一個字符串,然后使用for循環語句遍歷這個字符串,獲取字符串中的單個字符,並用print語句輸出。流程圖與列1相似,這里不再繪制流程圖。程序代碼如下:

例2輸出結果如下圖所示。

 

2、 使用序列索引迭代序列對象

例1中使用序列項迭代列表對象,for循環中的in子句會判斷當前序列項是否在序列中,如果屬於列表則繼續循環,否則退出循環。在for循環語句中,也可以使用序列索引來迭代列表。使用序列索引迭代序列對象的語法如下:

for index in range(len(list)):

語句塊;

其中,index為序列的索引項,range是一個計數函數,后面會詳解解釋,len獲取序列對象的長度。

例1使用序列索引遍歷列表代碼如下:

使用range函數可以得到用來迭代index的索引數列表,使用序列對象的訪問運算符“[]”,就可以訪問對應的序列對象。

3、使用枚舉函數迭代序列對象

枚舉函數enumerate()用於將序列對象轉換為一個索引序列,並返回序列對象的索引和成員,一般在for循環中得到序列對象的索引計數和序列對象成員。使用枚舉函數迭代序列對象的語法如下:

for index, iter_var in enumerate (list,start_index=0):

語句塊;

其中,index為enumerate返回的索引計數,iter_var為與索引計數對應的序列對象成員,list為待遍歷的序列對象,start_index為返回的起始索引計數,起始索引計數默認為0。

例1使用枚舉函數遍歷列表代碼如下:

使用enumerate函數獲取student的索引計數,索引計數從0開始,也可以指定起始索引計數。

索引計數從2開始,輸出結果如下圖所示。

 

4、 關於range函數

前面介紹的for循環是一種迭代的循環機制,和Java、C++等傳統編程語言的for循環有所不同。那么,Python能不能提供類似於傳統的for循環功能呢?實現循環從一個數字開始計數到另一個數字,一旦到達最后的數字或者某個條件不再滿足就立刻退出循環。

Python提供的range函數可以讓for循環實現上面的功能,可以讓for循環從0到10計數,或者從10到100每次遞增5。range函數的語法如下:

range(start, end, step=1)

range會返回一個整數序列,statr為整數序列的起始值,end為整數序列的結束值,在生成的整數序列中,不包含結束值。step為整數序列中遞增的步長,默認為1。

例如:

輸出結果如下圖所示。

 

range(0,5)生成包含0、1、2、3、4的整數序列,Python會把生成的這個整數序列用於for循環語句,循環從0到5,不包括5,步長為1,循環次數為5。

range(10,30,5)生成包含10、15、20、25的整數序列,循環從10到25,不包括30,步長為5,循環次數為4。可以看出,當range用於for循環時,循環次數取決於range返回的整數序列的長度,每次循環的索引計數為整數序列的值。

例3:使用for循環求自然數的階乘。

自然數的階乘是所有小於及等於該自然數的積,求自然數k的階乘,就是從1開始順序乘以小於等於k的所有自然數,也包括k。程序可以通過range函數返回小於所求自然數的整數序列,然后迭代range函數返回的整數序列。程序代碼如下:

課程小結

(1)Python提供的for循環語句和Java、C++等編程語言提供的for語句不同,Python中的for更像是shell或是腳本語言中的foreach循環。它可以遍歷如列表、元組、字符串等序列成員(列表、元組、字符串也稱為序列),也可以用在列表解析和生成器表達式中。

(2)Pyhton的for循環應用range函數可以實現傳統的for循環功能,實現循環從一個數字開始計數到另一個數字,一旦到達最后的數字或者某個條件不再滿足就立刻退出循環。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM