楊輝三角定義
1
1 1
1 2 1
1 3 3 1
今天學(xué)習(xí)到的一個python代碼實現(xiàn)非常簡潔
網(wǎng)址如下:
python 生成器
對于像我這樣python初學(xué)者非常推薦
代碼如下:
# -*- coding: utf-8 -*-
def triangles():
N = [1]
while True:
yield N
N.append(0)
N = [N[i]+N[i-1] for i in range(len(N))]
if __name__ == "__main__":
n = 0
for t in triangles():
print(t)
n = n + 1
if n == 10:
break
利用生成器(yield)使得每次調(diào)用的時候分配內(nèi)存避免開辟過大內(nèi)存,測試函數(shù)輸出10行。每次迭代利用在末尾加入的0來補位,這樣新的一行第i個數(shù)字就是上一行第i個數(shù)字加上第i-1個數(shù)字,若計算的是該行第一個數(shù)字,則不是一般性的為上一行第1個數(shù)字加上補位的0(python 中-1指list最后一個元素)