python range函数for_Python的range函数与for循环语句
Python的range函數(shù)與for循環(huán)語句
米粒教育
發(fā)布時(shí)間:18-11-1518:49
介紹Python for循環(huán)語句和range函數(shù)的使用,文中主要討論for循環(huán)語句,Python的for循環(huán)語句類似于shell或是腳本語言中的foreach循環(huán),可以迭代序列對象。
使用range函數(shù)可以讓Python的for循環(huán)提供類似于傳統(tǒng)的for循環(huán)功能。
通過本篇的學(xué)習(xí),可以達(dá)成如下目標(biāo)。
使用for循環(huán)語句迭代序列對象
掌握range函數(shù)的使用方法
Python提供的另外一個(gè)循環(huán)結(jié)構(gòu)就是for循環(huán)語句,Python提供的for循環(huán)語句和Java、C++等編程語言提供的for語句不同,Python中的for循環(huán)更像是shell或是腳本語言中的foreach循環(huán)。
它可以遍歷如列表、元組、字符串等序列成員(列表、元組、字符串也稱為序列),也可以用在列表解析和生成器表達(dá)式中。
1、 使用序列項(xiàng)迭代序列對象
通過for循環(huán)可以迭代序列對象的所有成員,并在迭代結(jié)束后,自動結(jié)束循環(huán),其語法如下:
for iter_var in list:
語句塊;
其中,iter_var是迭代變量,指向序列對象的元素,list是可迭代對象。語句塊是循環(huán)體,在循環(huán)體中可以使用iter_var訪問可迭代對象的元素。
例1:使用Pyhton列表建立一個(gè)同學(xué)花名冊,使用for循環(huán)迭代輸出花名冊內(nèi)容。
程序初始化一個(gè)Python列表,列表中存儲姓名,然后使用for循環(huán)語句遍歷Python列表,獲取列表中的每個(gè)元素并輸出。程序流程圖如下:
圖1 例1流程圖
流程圖用到了for循環(huán)控制,迭代花名冊列表,并輸出列表元素,迭代結(jié)束后自動退出循環(huán),程序結(jié)束。
下面根據(jù)圖1所示的流程圖給出例1程序代碼。
在for語句的每次循環(huán)中,item變量被設(shè)置為student列表的當(dāng)前元素,被print語句使用。
例1輸出結(jié)果如下圖所示。
當(dāng)用for循環(huán)迭代字符串時(shí),迭代變量只會包含單個(gè)字符。遍歷字符串序列的功能并不常用,在字符串里查找字符時(shí),更常用的是用in操作符來判斷一個(gè)子串或單個(gè)字符是否屬于某個(gè)字符串。
例2:輸出一個(gè)字符串的所有字母序列。
程序初始化一個(gè)字符串,然后使用for循環(huán)語句遍歷這個(gè)字符串,獲取字符串中的單個(gè)字符,并用print語句輸出。流程圖與列1相似,這里不再繪制流程圖。程序代碼如下:
例2輸出結(jié)果如下圖所示。
2、 使用序列索引迭代序列對象
例1中使用序列項(xiàng)迭代列表對象,for循環(huán)中的in子句會判斷當(dāng)前序列項(xiàng)是否在序列中,如果屬于列表則繼續(xù)循環(huán),否則退出循環(huán)。在for循環(huán)語句中,也可以使用序列索引來迭代列表。使用序列索引迭代序列對象的語法如下:
for index in range(len(list)):
語句塊;
其中,index為序列的索引項(xiàng),range是一個(gè)計(jì)數(shù)函數(shù),后面會詳解解釋,len獲取序列對象的長度。
例1使用序列索引遍歷列表代碼如下:
使用range函數(shù)可以得到用來迭代index的索引數(shù)列表,使用序列對象的訪問運(yùn)算符“[]”,就可以訪問對應(yīng)的序列對象。
3、使用枚舉函數(shù)迭代序列對象
枚舉函數(shù)enumerate()用于將序列對象轉(zhuǎn)換為一個(gè)索引序列,并返回序列對象的索引和成員,一般在for循環(huán)中得到序列對象的索引計(jì)數(shù)和序列對象成員。使用枚舉函數(shù)迭代序列對象的語法如下:
for index, iter_var in enumerate (list,start_index=0):
語句塊;
其中,index為enumerate返回的索引計(jì)數(shù),iter_var為與索引計(jì)數(shù)對應(yīng)的序列對象成員,list為待遍歷的序列對象,start_index為返回的起始索引計(jì)數(shù),起始索引計(jì)數(shù)默認(rèn)為0。
例1使用枚舉函數(shù)遍歷列表代碼如下:
使用enumerate函數(shù)獲取student的索引計(jì)數(shù),索引計(jì)數(shù)從0開始,也可以指定起始索引計(jì)數(shù)。
索引計(jì)數(shù)從2開始,輸出結(jié)果如下圖所示。
4、 關(guān)于range函數(shù)
前面介紹的for循環(huán)是一種迭代的循環(huán)機(jī)制,和Java、C++等傳統(tǒng)編程語言的for循環(huán)有所不同。那么,Python能不能提供類似于傳統(tǒng)的for循環(huán)功能呢?實(shí)現(xiàn)循環(huán)從一個(gè)數(shù)字開始計(jì)數(shù)到另一個(gè)數(shù)字,一旦到達(dá)最后的數(shù)字或者某個(gè)條件不再滿足就立刻退出循環(huán)。
Python提供的range函數(shù)可以讓for循環(huán)實(shí)現(xiàn)上面的功能,可以讓for循環(huán)從0到10計(jì)數(shù),或者從10到100每次遞增5。range函數(shù)的語法如下:
range(start, end, step=1)
range會返回一個(gè)整數(shù)序列,statr為整數(shù)序列的起始值,end為整數(shù)序列的結(jié)束值,在生成的整數(shù)序列中,不包含結(jié)束值。step為整數(shù)序列中遞增的步長,默認(rèn)為1。
例如:
輸出結(jié)果如下圖所示。
range(0,5)生成包含0、1、2、3、4的整數(shù)序列,Python會把生成的這個(gè)整數(shù)序列用于for循環(huán)語句,循環(huán)從0到5,不包括5,步長為1,循環(huán)次數(shù)為5。
range(10,30,5)生成包含10、15、20、25的整數(shù)序列,循環(huán)從10到25,不包括30,步長為5,循環(huán)次數(shù)為4。可以看出,當(dāng)range用于for循環(huán)時(shí),循環(huán)次數(shù)取決于range返回的整數(shù)序列的長度,每次循環(huán)的索引計(jì)數(shù)為整數(shù)序列的值。
例3:使用for循環(huán)求自然數(shù)的階乘。
自然數(shù)的階乘是所有小于及等于該自然數(shù)的積,求自然數(shù)k的階乘,就是從1開始順序乘以小于等于k的所有自然數(shù),也包括k。程序可以通過range函數(shù)返回小于所求自然數(shù)的整數(shù)序列,然后迭代range函數(shù)返回的整數(shù)序列。程序代碼如下:
課程小結(jié)
(1)Python提供的for循環(huán)語句和Java、C++等編程語言提供的for語句不同,Python中的for更像是shell或是腳本語言中的foreach循環(huán)。它可以遍歷如列表、元組、字符串等序列成員(列表、元組、字符串也稱為序列),也可以用在列表解析和生成器表達(dá)式中。
(2)Pyhton的for循環(huán)應(yīng)用range函數(shù)可以實(shí)現(xiàn)傳統(tǒng)的for循環(huán)功能,實(shí)現(xiàn)循環(huán)從一個(gè)數(shù)字開始計(jì)數(shù)到另一個(gè)數(shù)字,一旦到達(dá)最后的數(shù)字或者某個(gè)條件不再滿足就立刻退出循環(huán)。
總結(jié)
以上是生活随笔為你收集整理的python range函数for_Python的range函数与for循环语句的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python array_python数
- 下一篇: clickhouse hbase性能对比