python中的for語(yǔ)句常用來(lái)用作循環(huán),常搭配in來(lái)使用,其結(jié)構(gòu)為for..in..。
for-in循環(huán)專門(mén)用于遍歷范圍、列表、元素和字典等可迭代對(duì)象包含的元素。
for-in循環(huán)的語(yǔ)法格式如下
for變量in字符串|范圍|集合等:
statements
對(duì)于上面的語(yǔ)法格式有以下兩點(diǎn)說(shuō)明:
for-in循環(huán)中的變量的值受for-in循環(huán)控制,該變量將會(huì)在每次循環(huán)開(kāi)始時(shí)自動(dòng)被賦值,因此程序不應(yīng)該在循環(huán)中對(duì)該變量賦值。
for-in循環(huán)可用于遍歷任何可選代對(duì)象。所謂可迭代對(duì)象,就是指該對(duì)象中包含一個(gè)__iter__方法,且該方法的返回值對(duì)象具有next()方法。
for-in循環(huán)可用于遍歷范圍。例如,如下程序使用for-in循環(huán)來(lái)計(jì)算指定整數(shù)的階乘:
s_max=input("請(qǐng)輸入您想計(jì)算的階乘:")
mx=int(s_max)
result=1
#使用for-in循環(huán)遍歷范圍
fornuminrange(1,mx+1):
result*=num
print(result)
上面程序?qū)?huì)根據(jù)用戶輸入的數(shù)字進(jìn)行循環(huán)。假如用戶輸入7,此時(shí)程序?qū)?huì)構(gòu)建一個(gè)range(1,8)對(duì)象(不包含8),因此for-in循環(huán)將會(huì)自動(dòng)循環(huán)7次,在每次循環(huán)開(kāi)始時(shí),num都會(huì)被依次自動(dòng)賦值為range所包含的每個(gè)元素。
for-in循環(huán)中的變量完全接受for-in循環(huán)控制,因此該變量也被稱為循環(huán)計(jì)數(shù)器。
運(yùn)行上面程序,如果輸入7,將會(huì)看到如下運(yùn)行過(guò)程:
請(qǐng)輸入您想計(jì)算的階乘:7
5040
程序?qū)or-in循環(huán)的循環(huán)計(jì)數(shù)器賦值在語(yǔ)法上是允許的,但沒(méi)有什么意義,而且非常容易導(dǎo)致錯(cuò)誤。例如如下程序:
foriinrange(1,5):
i=20
print("i:",i);
上面程序中的粗體字代碼對(duì)循環(huán)計(jì)數(shù)器i賦值,這樣導(dǎo)致程序每次循環(huán)時(shí)都要先對(duì)變量i賦值,當(dāng)程序剛進(jìn)入循環(huán)體時(shí),i就被重新賦值為20,因此在循環(huán)體中看到的i永遠(yuǎn)是20。運(yùn)行上面程序,將看到如下輸出結(jié)果:
i:20
i:20
i:20
i:20for-in循環(huán)遍歷列表和元組
在使用for-in循環(huán)遍歷列表和元組時(shí),列表或元組有幾個(gè)元素,for-in循環(huán)的循環(huán)體就執(zhí)行幾次,針對(duì)每個(gè)元素執(zhí)行一次,循環(huán)計(jì)數(shù)器會(huì)依次被賦值為元素的值。
如下代碼使用for-in循環(huán)遍歷元組:
a_tuple=('crazyit','fkit','Charlie')
foreleina_tuple:
print('當(dāng)前元素是:',ele)
以上內(nèi)容為大家介紹了python培訓(xùn)之python里面for什么意思,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。