在一般情況下,語句是順序執(zhí)行的:在一個函數(shù)的第一條語句,首先執(zhí)行,然后是第二條,第三條...等等??赡苡幸环N情況,當(dāng)你需要執(zhí)行代碼塊幾次或多數(shù)。 編程語言提供了各種控制結(jié)構(gòu),使程序執(zhí)行更多復(fù)雜的路徑。 循環(huán)語句可以讓我們執(zhí)行語句聲明或組多次。下圖說明了一個循環(huán)語句 : Python編程語言提供了以下類型的循環(huán)處理的說明。
循環(huán)控制語句循環(huán)控制語句改變其正常的順序執(zhí)行。當(dāng)執(zhí)行離開了循環(huán)范圍,在該范圍內(nèi)創(chuàng)建的所有自動對象被銷毀。 Python支持以下控制語句。點(diǎn)擊以下鏈接查看其詳細(xì)信息。
我們通過循環(huán)控制語句簡短地說明 : 迭代器和發(fā)生器迭代器是一個對象,它允許程序員遍歷集合的所有元素,而不管其具體的實(shí)現(xiàn)。在Python迭代器對象實(shí)現(xiàn)了兩個方法: iter() 和 next() 字符串列表或元組對象可用于創(chuàng)建一個迭代器(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)生或會產(chǎn)生yield序列值。 當(dāng)一個生成器函數(shù)被調(diào)用,它返回一個生成器對象甚至不需要開始執(zhí)行該函數(shù)。 當(dāng) next()方法被調(diào)用的第一次,函數(shù)開始執(zhí)行,直到達(dá)到其返回值產(chǎn)生yield語句。yield跟蹤并記住最后一次執(zhí)行。第二 next()函數(shù)從上一個值繼續(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() |
|