学的是b站的课,非本人自创代码!
现在来写一篇博客来讲解打印杨辉三角(进阶版)的方法,[如果讲述不清可以私信问哈,如果讲的不好也可以说,毕竟自己还是入门水平]
1.进阶区别
现在这个代码可以让前面的结果呈对称展开,并且可以自己输入打印的阶数.
2.步骤
1.把n=5换成input函数
# 打印杨辉三角
n = int(input("请输入需要的阶数:"))
data = [[1],[1,1])
for i in range(2,n):
d = [1]
for j in range(i-1):
d.append(data[i-1][j] + data[i-1][j+1])
d.append(1)
data.append(d)
for i in data:
for j in i:
print(j,end="\t")
print()
2.因为想按照杨辉三角的格式输出,所以在左侧数字1前要留有空格,空格数为n-当前i的数量.
# 打印杨辉三角
n = int(input("请输入需要的阶数:"))
data = [[1], [1, 1]]
for i in range(2, n):
d = [1]
for j in range(i - 1):
d.append(data[i - 1][j] + data[i - 1][j + 1])
d.append(1)
data.append(d)
for i in data:
print(" "*(n-len(i)),end="")
for j in i:
print(j, end="\t")
print()
3.现在左边的已经工整了,来看右边.右边要对齐的话,可以把j变成一个字符串,将其两端用空格补齐[center函数],这里的参数我们填6,也可以自行更改。别忘了将后面的end改成空格!
# 打印杨辉三角
n = int(input("请输入需要的阶数:"))
data = [[1], [1, 1]]
for i in range(2, n):
d = [1]
for j in range(i - 1):
d.append(data[i - 1][j] + data[i - 1][j + 1])
d.append(1)
data.append(d)
for i in data:
print(" "*(n-len(i)),end="")
for j in i:
print(str(j).center(6), end=" ")
print()
4.调整代码.现在要使左右对齐,因为center参数为6,所以左边的空格应该为6/2=3,我们将其改为3个空格.
# 打印杨辉三角
n = int(input("请输入需要的阶数:"))
data = [[1], [1, 1]]
for i in range(2, n):
d = [1]
for j in range(i - 1):
d.append(data[i - 1][j] + data[i - 1][j + 1])
d.append(1)
data.append(d)
for i in data:
print(" "*(n-len(i)),end="")
for j in i:
print(j, end=" ")
print()
3.演示
4,总结
多多调试,多多试错。一起加油!有解释的不好的地方多多包涵,谢谢观看!