程式輸出需要實作以下效果:
[1] [1,1] [1,2,1] [1,3,3,1]
......
方法:迭代,產生器
def triangles() L = [1] while True: yiled L L =[1] + [L[i] + L[I+1] for i in range(len(L)-1)] + [1] n = 0 for t in triangles(): print(t) n += 1 if n == 10: break
實作邏輯:
# 1.由於yield為生成器中斷輸出,所以有了第一個次輸出為[1]
2.繼續while下面的yield後的循環,此時list長度為1,將其代入L中的len(L),得出[L[i]+L[i+1] for i in range(1-1)]得出為空值,所以yield L輸出為[1,1]
3.此時len(L)值為2,代入得[L[i]+L[i+1] for i in range(2-1)]為[L[i]+L[ i+1] for i in range(1)],i能取值為0,代入後為[L[0]+L[1]],而L[0]和L[1]的值均為1 (上面結果可知),所以輸出結果為[1,2,1]
4.由第三條可知此時len(L)值為3,代入得出[L[i]+ L[i+1] for i in range(2)],i取值為0和1,經由循環輸出有兩個值,皆為3,分別由[L[0]+L[1]],[ L[1]+L[2]]
以上是python 楊輝三角方法的實例介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!