# -*- coding:utf-8 -*-
def triangles():
#i = 1
j = 0
L1 = []
L2 = []
S1 = 0
while j < 10:
s = 0
for i in L1:
S1 = s + i
s = i #記錄上個循環i的值
L2.append(S1)
L2.append(1)
yield L2 #生成器 返回L2 list 列表的值
L1 = L2[:] #將L1指向L2 變成上一次循環的list
L2 = [] #L2保存的是當次循環的list 初始化她
j = j + 1
n = 0
for x in triangles():
print x
n = n + 1
if n == 10:
break
函數是順序執行,遇到return
語句或者最後一行函數語句就返回。而變成generator的函數,在每次調用next()
的時候執行,遇到yield
語句返回,再次執行時從上次返回的yield
語句處繼續執行。