在一般情況下,語(yǔ)句是順序執(zhí)行的:在一個(gè)函數(shù)的第一條語(yǔ)句,首先執(zhí)行,然后是第二條,第三條...等等??赡苡幸环N情況,當(dāng)你需要執(zhí)行代碼塊幾次或多數(shù)。
編程語(yǔ)言提供了各種控制結(jié)構(gòu),使程序執(zhí)行更多復(fù)雜的路徑。
循環(huán)語(yǔ)句可以讓我們執(zhí)行語(yǔ)句聲明或組多次。下圖說(shuō)明了一個(gè)循環(huán)語(yǔ)句 :
Python編程語(yǔ)言提供了以下類(lèi)型的循環(huán)處理的說(shuō)明。
循環(huán)類(lèi)型 | 描述 |
while循環(huán) | 當(dāng)指定的條件為T(mén)RUE重復(fù)執(zhí)行語(yǔ)句或組。 它在執(zhí)行循環(huán)體之前測(cè)試條件。 |
for循環(huán) | 執(zhí)行一系列語(yǔ)句多次和縮寫(xiě)代碼管理循環(huán)變量 |
嵌套循環(huán) | 可以使用一個(gè)或多個(gè)環(huán)在另一個(gè) while 或者 for 或循環(huán)內(nèi) |
循環(huán)控制語(yǔ)句改變其正常的順序執(zhí)行。當(dāng)執(zhí)行離開(kāi)了循環(huán)范圍,在該范圍內(nèi)創(chuàng)建的所有自動(dòng)對(duì)象被銷(xiāo)毀。
Python支持以下控制語(yǔ)句。點(diǎn)擊以下鏈接查看其詳細(xì)信息。
控制語(yǔ)句 | 描述 |
break語(yǔ)句 | 終止循環(huán)語(yǔ)句并立刻轉(zhuǎn)移執(zhí)行循環(huán)后面的語(yǔ)句 |
continue語(yǔ)句 | 跳過(guò)循環(huán)體的其余部分,并立即重申之前重新測(cè)試循環(huán)條件狀態(tài) |
pass語(yǔ)句 | 在Python中的pass語(yǔ)句的使用時(shí),需要在一份聲明中使用, 但又不希望執(zhí)行任何命令或代碼 |
我們通過(guò)循環(huán)控制語(yǔ)句簡(jiǎn)短地說(shuō)明 :
迭代器是一個(gè)對(duì)象,它允許程序員遍歷集合的所有元素,而不管其具體的實(shí)現(xiàn)。在Python迭代器對(duì)象實(shí)現(xiàn)了兩個(gè)方法: iter() 和 next()
字符串列表或元組對(duì)象可用于創(chuàng)建一個(gè)迭代器(Iterator)
list=[1,2,3,4] it = iter(list) # this builds an iterator object print (next(it)) #prints next available element in iterator Iterator object can be traversed using regular for statement !usr//bin/python3 for x in it: print (x, end=" ") or using next() function while True: try: print (next(it)) except StopIteration: sys.exit() #you have to import sys module for this 1234567891011121314復(fù)制代碼類(lèi)型:[python]
所述的發(fā)生器是使用 yield 函數(shù)產(chǎn)生或會(huì)產(chǎn)生yield序列值。
當(dāng)一個(gè)生成器函數(shù)被調(diào)用,它返回一個(gè)生成器對(duì)象甚至不需要開(kāi)始執(zhí)行該函數(shù)。 當(dāng) next()方法被調(diào)用的第一次,函數(shù)開(kāi)始執(zhí)行,直到達(dá)到其返回值產(chǎn)生yield語(yǔ)句。yield跟蹤并記住最后一次執(zhí)行。第二 next()函數(shù)從上一個(gè)值繼續(xù)調(diào)用。
# Following example defines a generator which generates an iterator for all the Fibonacci numbers. !usr//bin/python3 import sys def fibonacci(n): #generator function a, b, counter = 0, 1, 0 while True: if (counter > n): return yield a a, b = b, a + b counter += 1 f = fibonacci(5) #f is iterator object while True: try: print (next(f), end=" ") except StopIteration: sys.exit()
聯(lián)系客服