阿里程序員Python培訓(xùn)分享For循環(huán)用法詳解腿箩,結(jié)合實(shí)例形式詳細(xì)分析了Pythonfor循環(huán)的功能尚骄、原理潭流、用法及相關(guān)操作注意事項(xiàng)难菌,下面我們一起來(lái)看一下吧试溯。
Python有兩種類型的循環(huán):for循環(huán)和while循環(huán)。for循環(huán)用來(lái)遍歷可迭代對(duì)象郊酒。
可迭代對(duì)象是每次可以返回其中一個(gè)元素的對(duì)象,包括字符串遇绞、列表和元組等序列類型键袱,以及字典和文件等非序列類型。還可以使用迭代器和生成器定義可迭代對(duì)象
For循環(huán)示例:
# iterable of cities
cities = ['new york city', 'mountain view', 'chicago', 'los angeles']
# for loop that iterates over the cities list
for city in cities:
print(city.title())
For循環(huán)的組成部分:
循環(huán)的第一行以關(guān)鍵字for開始试读,表示這是一個(gè)for循環(huán)
然后是iteration_variableiniterable杠纵,表示正在被遍歷的是可迭代的對(duì)象荠耽,并且用迭代變量表示當(dāng)前正在被處理的可迭代對(duì)象的元素钩骇。在此示例中,迭代變量city在第一次迭代時(shí)將是“newyorkcity”铝量,在第二次迭代時(shí)將是mountainview倘屹。
for循環(huán)頭部始終以英文冒號(hào):結(jié)束。
for循環(huán)頭部之后的是在此for循環(huán)的每次迭代時(shí)運(yùn)行的縮進(jìn)代碼塊慢叨。在此塊中纽匙,我們可以使用迭代變量訪問(wèn)當(dāng)前正在被處理的元素的值。
你可以隨意命名迭代變量拍谐。常見模式是為迭代變量和可迭代對(duì)象指定相同的名稱烛缔,但是分別使用單復(fù)數(shù)形式(例如‘city'和‘cities')
For循環(huán)創(chuàng)建和修改列表:
# Creating a new list
cities = ['new york city', 'mountain view', 'chicago', 'los angeles']
capitalized_cities = []
for city in cities:
capitalized_cities.append(city.title())
修改列表稍微復(fù)雜些,需要使用新的函數(shù):range():
range()是一個(gè)內(nèi)置函數(shù)轩拨,用于創(chuàng)建不可變的數(shù)字序列践瓷。它有三個(gè)參數(shù),必須都為整數(shù)亡蓉。range(start=0,stop,step=1)
start是該序列的第一個(gè)數(shù)字晕翠,stop比該序列的最后一個(gè)數(shù)字大1,step是該序列中每個(gè)數(shù)字之間的差砍濒。如果未指定的話淋肾,start默認(rèn)為0,step默認(rèn)為1(即上述=0和=1)爸邢。
如果你在range()的括號(hào)里指定一個(gè)參數(shù)樊卓,它將用作stop的值,另外兩個(gè)參數(shù)使用默認(rèn)值杠河。E.g.list(range(4))返回[0,1,2,3]
如果你在range()的括號(hào)里指定兩個(gè)參數(shù)碌尔,它們將用作start和stop的值,step將使用默認(rèn)值感猛。E.g.list(range(2,6))返回[2,3,4,5]
注意七扰,在這些示例中,我們將range封裝在列表中陪白。因?yàn)閞ange本身的輸出是一個(gè)range對(duì)象颈走。我們可以通過(guò)將其轉(zhuǎn)換為列表或在for循環(huán)中遍歷它,查看range對(duì)象中的值集合咱士。
我們可以使用range函數(shù)為cities列表中的每個(gè)值生成索引立由。這樣我們便可以使用cities[index]訪問(wèn)列表中的元素轧钓,以便直接修改cities列表中的值。
cities = ['new york city', 'mountain view', 'chicago', 'los angeles']
for index in range(len(cities)):
cities[index] = cities[index].title()
雖然修改列表是range函數(shù)的一個(gè)用途锐膜,但是并非只有這一個(gè)用途毕箍。你將經(jīng)常使用range和for循環(huán)重復(fù)某個(gè)操作一定的次數(shù)。
for i in range(3)
print("Hi!")
For循環(huán)[相關(guān)練習(xí)]
寫一個(gè)遍歷names列表以創(chuàng)建usernames列表的for循環(huán)道盏。要為每個(gè)姓名創(chuàng)建用戶名而柑,使姓名全小寫并用下劃線代替空格。對(duì)以下列表運(yùn)行for循環(huán):
names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"
應(yīng)該會(huì)創(chuàng)建列表:
usernames = ["joey_tribbiani", "monica_geller", "chandler_bing", "phoebe_buffay"]
解決方案如下:
names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
usernames = []
# write your for loop here
for name in names:
usernames.append(name.lower().replace(" ", "_"))
print(usernames)
假設(shè)我們不想創(chuàng)建新的列表荷逞,而是修改names列表本身媒咳,并編寫以下代碼。下面的代碼有什么作用种远?
names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
for name in names:
name = name.lower().replace(" ", "_")
print(names)
分析:這段代碼沒(méi)有效果涩澡。在每次迭代時(shí),name變量設(shè)為從該列表中獲取的一個(gè)字符串坠敷。然后賦值語(yǔ)句創(chuàng)建一個(gè)新的字符串(name.lower().replace("","_"))并將name變量更改為該字符串妙同。要修改該列表,你必須使用range對(duì)該列表本身操作膝迎。
寫一個(gè)使用range()遍歷usernames中的職位以修改該列表的for循環(huán)粥帚。和上一道練習(xí)一樣,將每個(gè)姓名改成全小寫形式并用下劃線代替空格弄抬。運(yùn)行for循環(huán)后茎辐,以下列表
usernames = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
應(yīng)該更改為:
usernames = ["joey_tribbiani", "monica_geller", "chandler_bing", "phoebe_buffay"]
解決方案如下:
usernames = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
# escreva seu loop for aqui
for index in range(len(usernames)):
usernames[index] = usernames[index].lower().replace(" ", "_")
print(usernames)
標(biāo)記計(jì)數(shù)器:寫一個(gè)for循環(huán),用于遍歷字符串列表tokens并數(shù)一下有多少個(gè)XML標(biāo)記掂恕。
解決方案如下:
tokens = ['<greeting>', 'Hello World!', '</greeting>']
count = 0
# write your for loop here
for t in tokens:
if t[0] == '<' and t[-1] == '>':
count += 1
print(count)
創(chuàng)建HTML列表:寫一個(gè)for循環(huán)拖陆,用于遍歷字符串列表并創(chuàng)建單個(gè)字符串html_str,它是一個(gè)HTML列表懊亡。例如依啰,如果列表是items=['firststring','secondstring],輸出html_str應(yīng)該會(huì)輸出:
<ul>
<li>first string</li>
<li>second string</li>
</ul>
解決方案如下:
items = ['first string', 'second string']
html_str = "<ul>\n"
for item in items:
html_str += "<li>" + item + "</li>\n"
html_str += "</ul>"
print(html_str)
這邊整理了相關(guān)的資料店枣,私信“? ?1? ?”獲取哦