python实现杨辉三角思路

yipeiwu_com6年前Python基础

程序输出需要实现如下效果:

[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消除序列的重复值并保持顺序不变的实例

python 消除序列的重复值,并保持原来顺序 1、如果仅仅消除重复元素,可以简单的构造一个集合 $ python Python 3.5.2 (default, Nov 23 201...

Python绘制股票移动均线的实例

Python绘制股票移动均线的实例

1. 前沿 移动均线是股票最进本的指标,本文采用numpy.convolve计算股票的移动均线 2. numpy.convolve numpy.convolve(a, v, mode='...

Python实现将不规范的英文名字首字母大写

例如 输入:['adam', 'LISA', 'barT'],输出:['Adam', 'Lisa', 'Bart']。 方法一 def wgw(x): return [x[0]...

Python 生成 -1~1 之间的随机数矩阵方法

Python 生成 -1~1 之间的随机数矩阵方法

1. 使用函数 np.random.random 由于 np.random.random() 默认生成 0~1 之间的小数,因此需要转换一下 如生成 3*3 的 -1~1 之间的随机数...

Python中的Function定义方法第1/2页

下面就先定义一个函数: 复制代码 代码如下:def foo(): print('function') foo() 在上述代码中,定义了一个名为foo的函数,这个函数没有参数。最后一行代码...