Python生成器例項

2021-10-23 20:46:25 字數 758 閱讀 7656

在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,執行後返回...