在一般情況下,語句是順序執(zhí)行的:在一個(gè)函數(shù)的第一條語句,,首先執(zhí)行,,然后是第二條,第三條...等等,??赡苡幸环N情況,當(dāng)你需要執(zhí)行代碼塊幾次或多數(shù),。 編程語言提供了各種控制結(jié)構(gòu),,使程序執(zhí)行更多復(fù)雜的路徑。 循環(huán)語句可以讓我們執(zhí)行語句聲明或組多次,。下圖說明了一個(gè)循環(huán)語句 : Python編程語言提供了以下類型的循環(huán)處理的說明,。
循環(huán)控制語句循環(huán)控制語句改變其正常的順序執(zhí)行。當(dāng)執(zhí)行離開了循環(huán)范圍,,在該范圍內(nèi)創(chuàng)建的所有自動(dòng)對(duì)象被銷毀,。 Python支持以下控制語句。點(diǎn)擊以下鏈接查看其詳細(xì)信息,。
我們通過循環(huán)控制語句簡(jiǎn)短地說明 : 迭代器和發(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語句,。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() |
|