Python3循環
在一般情況下,語句是順序執行的:在一個函數的第一條語句,首先執行,然後是第二條,第三條...等等。可能有一種情況,當你需要執行代碼塊幾次或多數。
編程語言提供了各種控制結構,使程序執行更多複雜的路徑。
循環語句可以讓我們執行語句聲明或組多次。下圖說明了一個循環語句 -
Python編程語言提供了以下類型的循環處理的說明。
循環類型
描述
while循環
當指定的條件爲TRUE重複執行語句或組。它在執行循環體之前測試條件。
for循環
執行一系列語句多次和縮寫代碼管理循環變量
嵌套循環
可以使用一個或多個環在另一個 while 或者 for 或循環內
循環控制語句
循環控制語句改變其正常的順序執行。當執行離開了循環範圍,在該範圍內創建的所有自動對象被銷燬。
Python支持以下控制語句。點擊以下鏈接查看其詳細信息。
控制語句
描述
break語句
終止循環語句並 立刻轉移執行循環後面的語句
continue語句
跳過 循環體的其餘部分,並立即重申之前重新測試循環條件狀態
pass語句
在Python中的pass語句的使用時,需要在一份聲明中使用,但又不希望 執行任何命令或代碼
我們通過循環控制語句簡短地說明 -
迭代器和發生器
迭代器是一個對象,它允許程序員遍歷集合的所有元素,而不管其具體的實現。在Python迭代器對象實現了兩個方法: iter() 和 next()
字符串列表或元組對象可用於創建一個迭代器(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
所述的發生器是使用 yield 函數產生或會產生yield序列值。
當一個生成器函數被調用,它返回一個生成器對象甚至不需要開始執行該函數。 當 next()方法被調用的第一次,函數開始執行,直到達到其返回值產生yield語句。yield跟蹤並記住最後一次執行。第二 next()函數從上一個值繼續調用。
# 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()