概述
输出一个杨辉三角
第一个方法:
def triangles():
l = [1]
yield l #输出第一行:只有一个1的list
l = [1,1]
yield l #输出第二行,两个1的list
while True:
l1 = l[1:] #从l的索引1开始取,取后面所有的元素.
for n in range(len(l1)):
l[n] = l1[n]+l[n] #这个地方就是由于l1是从第二个截取了l,所以每次n+1,都是两个相邻位置数字相加。
l = [1]+l #在最前面补上一个1
yield l
换个角度在理解一下:
def triangles():
c = [1]
while True:
yield c
a,b = [0]+c,c+[0]
c =[a[i]+b[i] for i in range(len(a))]
#这个方法显得更易理解;其实就是分别在c的前后各补上0
0,1
1,0 二者相加,变成1,1
0,1,1
1,1,0 二者相加,1,2,1 以此类推。。。
这个就更简单了:每次修改中间的,两头不管。
def triangles():
l = [1]
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
for t in triangles():
print(t)
n = n + 1
if n == 10:
break
最后
以上就是含蓄苗条为你收集整理的Python输出一个杨辉三角的全部内容,希望文章能够帮你解决Python输出一个杨辉三角所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复