python 實現楊輝三角_python

# -*- 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语句处继续执行。