#目標 輸出如下
# [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]
'''
公衆號:來自世界的美意