奉上全网最简单理解的杨辉三角形版本! 学习廖雪峰老师的python教程时,习惯性的做一下后边的习题,这次的杨辉三角形,就一直在思考用什么方式去解决,学习了好几种方式,有理解的也有不理解的,最终还是感觉这个比较好,没有使用yield。
下面我按照我自己在解决问题时候的思路:
示例结果以杨辉三角形前10行为例子
(1)首先给大家看一下结果:
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
[1, 5, 10, 10, 5, 1]
[1, 6, 15, 20, 15, 6, 1]
[1, 7, 21, 35, 35, 21, 7, 1]
[1, 8, 28, 56, 70, 56, 28, 8, 1]
[1, 9, 36, 84, 126, 126, 84, 36, 9, 1]
(2)然后给大家看一下我的代码:
N = [1]
m = int(input("please input the number:"))
for i in range(m):
print(N)
N.append(0)
N = [N[k]+N[k-1] for k in range(len(N))]
(3)代码解释:
第一步创建一个元素只含有1的列表N,让用户输入m
第二步开始进入for循环:
i=0时:打印N=[1],然后执行N.append此时N变成[1,0]
然后执行len(N)=2,range(2)=[0,1]
然后执行列表生成式N[0]+N[-1]=1+0=1,N[1]+N[0]=0+1=1
—>此时N已经变为[1,1]
i=1时:打印N=[1,1],然后执行N.append此时N变成[1,1,0]
然后执行len(N)=3,range(3)=[0,1,2]
然后执行列表生成式N[0]+N[-1]=1+0=1,N[1]+N[0]=1+1=2
N[2]+N[1]=0+1=1
—>此时N已经变为[1,2.1]
…以此类推,完成杨辉三角形全解,学习来自bilibili暮光微晓破清晨,感谢至极,以上语句为自己翻译所得