在python中一邊迴圈一邊計算的機制,叫做生成器生成器是特殊的迭代器,同樣可以使用next()獲取下一位元素。
例項1:for 迴圈實現
z = (x for x in range(10))
print(next(z))
print(next(z))
print(next(z))
print(next(z))
---------------------結果01
23---------------------
當超過了範圍將會出現錯誤
------
print(next(z))
stopiteration
------
可以用try 語句進行捕獲修正
例項2:斐波那契數列
def fbnq(num):
a = 0
b = 1
flag = 0
while flaga,b =b,a+b
flag +=1
yield a
if __name__ == '__main__':
ret = fbnq(6)
print(next(ret))
print(next(ret))
print(next(ret))
print(next(ret))
---------------------結果11
23
生成器例項
1 defjidan 2for i in range 10 3yield 雞蛋 d i4 jd 生成器 自動實現迭代器協議 5 jd jidan 6print jd.next 7 print jd.next 包子問題 1 defproduct bz 2for i in range 10 3print...
python生成器並行例項
生成器並行例項 send傳送值被yield接受到賦值給baozi變數 yield作用只是在這裡儲存這個值的當前狀態然後返回之後在呼叫next,又回到yield 單純呼叫next不會給yield傳值,next只是在呼叫yield,send是呼叫yield並且傳值 import time 協程def c...
python 生成器作用 Python生成器
生成器介紹 在函式內部包含yield關鍵字,那麼該函式執行的結果是生成器,生成器就是迭代器。生成器的功能 把函式結果做成迭代器 以一種優雅的方式封裝好iter,next 提供了一種自己定義迭代器的方式。使用生成器建立乙個迭代器 def a print a yield 11 使用yield,執行後返回...