python实现杨辉三角思路

yipeiwu_com7年前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正则表达式操作指南(re使用)

比较详细Python正则表达式操作指南(re使用)

Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。Python 1.5之前版本则是通过 regex 模块提供 Emecs 风格的模式。Emacs 风格模...

pandas series序列转化为星期几的实例

series序列中每个元素都是带有日期形式的字符串,需要将其转化为一个同等大小的series,且其中每个元素都是星期几。 1)将Series转化为datetime格式; 2)将Serie...

python取均匀不重复的随机数方式

Python产生一个数值范围内的不重复的随机数,可以使用random模块中的random.sample函数,其用法如下: import random bbb=[10,11,12,1...

python矩阵转换为一维数组的实例

实例如下所示: >>>from compiler.ast import flatten >>>X matrix([[ 1, 17, 13, 22...

python3.3教程之模拟百度登陆代码分享

复制代码 代码如下:#-*-coding:utf-8-*-'''Created on 2014年1月10日 @author: hhdys'''import urllib.request,...