杨辉三角定义
1
1 1
1 2 1
1 3 3 1
今天学习到的一个python代码实现非常简洁
网址如下:
python 生成器
对于像我这样python初学者非常推荐
代码如下:
# -*- 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)使得每次调用的时候分配内存避免开辟过大内存,测试函数输出10行。每次迭代利用在末尾加入的0来补位,这样新的一行第i个数字就是上一行第i个数字加上第i-1个数字,若计算的是该行第一个数字,则不是一般性的为上一行第1个数字加上补位的0(python 中-1指list最后一个元素)
网友评论