python 編寫楊輝三角

#楊輝三角 python


#目標 輸出如下
# [1]
# [1, 1]
# [1, 2, 1]
# [1, 3, 3, 1]
# [1, 4, 6, 4, 1]
# [1, 5, 10, 10, 5, 1]
# [1, 6, 15, 20, 15, 6, 1]
# [1, 7, 21, 35, 35, 21, 7, 1]
# [1, 8, 28, 56, 70, 56, 28, 8, 1]
# [1, 9, 36, 84, 126, 126, 84, 36, 9, 1]

#程序如下:
def triangles():
    l = [1]             #定義L爲一個只包含一個元素的列表
    while True:
        yield 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 = n + 1
    if n == 10:
        break

'''
運行流程和思路如下:


輸出:
    第一行:L = [1]


    
第二行思路:
    len(L) = 1
    range(0) = []  
">>> for i in range(0):
print(i)
輸出爲空 "


所以[l[i]+l[i+1] for i in range(len(l)-1)]  ==[]  空
所以第二行:L = [1]  + [1]
第二行結果:           L = [1, 1]

第三行思路:
    len(L)= 2     "因爲  L=[1,1]"
    range(1)=[0]
"因爲 >>> for i in range(1):
print(i)
>>>0 "


所以第三行:L = [1] + [L[0] + L[1] ] + [1]
[L[0] + L[1]]   "等於取剛纔 L[1,1] 的0位和1位"
L = [1] + [L[0] + L[1] ] + [1]
[L[0] + L[1] =2
第三行結果:L = [1, 2, 1]






第四行思路:
len(L) = 3 '因爲此時 L=[1,2,1] 長度是3'
range(2)=[0,1]


    第四行:L = [1] + [ L[0] + L[1], L[1] + L[2] ] + [1]


L[0] + L[1] == 3  "因爲此時L=[1,2,1],取0位和1位的1和2 加起來就是3"
L[1] + L[2] ==3
            L = [1] + [ 2 + 1, 1 + 2 ]+ [1]
            L = [1] + [3] + [3] + [1]
            L = [1, 3, 3, 1] 


'''


公衆號:來自世界的美意


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章