编程方面的纯小白,给出的代码可能不是最好的解答方法,写这个博客就是希望得到一些建议同时和大家一起交流。😃
y=[]
for i in range(7):
s=""
z=[]
for j in range(2*i+1):
if(j==0 or j==2*i):s+="1";z.append(1)
elif(j%2!=0):s+=" ";z.append(0)
else:
w=y[j-2]+y[j]
s+=str(w)
z.append(w)
print(s.center(40))
y=z
这个是运行后的效果
看上去好像还是是满足要求的,但是在格式上是存在问题的。从第5行开始出现的“10”已经超出了预留的一位空格,杨辉三角已经逐渐朝着杨辉扇形的方向进行了。如果我们修改行数到15,就是如下这个无奈的效果:
目前想到的解决办法就是把中间预留的一位空格增加到3位甚至4位。这种写法的局限性很明显,除非预留足够的空格数,否则行数没有办法拓展至无穷,代码的写法和预设的行数有相关性(根据行数决定预留的空格数…)。
作为一个小白,这种局限就引发了我的怀疑,给出的代码真的是正确的写法吗?
(按照正确的行文现在应该是我给出解法的时候,但是没有…希望各位大神能在评论区给出解法哈哈哈)