在一般情況下,語(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ǔ)言提供了以下類型的循環(huán)處理的說(shuō)明。
循環(huán)控制語(yǔ)句循環(huán)控制語(yǔ)句改變其正常的順序執(zhí)行。當(dāng)執(zhí)行離開了循環(huán)范圍,在該范圍內(nèi)創(chuàng)建的所有自動(dòng)對(duì)象被銷毀。 Python支持以下控制語(yǔ)句。點(diǎn)擊以下鏈接查看其詳細(xì)信息。
我們通過(guò)循環(huán)控制語(yǔ)句簡(jiǎn)短地說(shuō)明 : 迭代器和發(fā)生器迭代器是一個(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ù)制代碼類型:[python] 所述的發(fā)生器是使用 yield 函數(shù)產(chǎn)生或會(huì)產(chǎn)生yield序列值。 當(dāng)一個(gè)生成器函數(shù)被調(diào)用,它返回一個(gè)生成器對(duì)象甚至不需要開始執(zhí)行該函數(shù)。 當(dāng) next()方法被調(diào)用的第一次,函數(shù)開始執(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() |
|
來(lái)自: 碼農(nóng)9527 > 《Python》