金字塔上下部分的编写有什么联系,怎么写?
只会写上面那一部分
编写程序写出下面图案
for i in range(1,6):
print(' '*(5-i),end='')
print(str(i) * (2*(i-1)+1))
for i in range(4,0,-1):
print(' '*(5-i),end='')
print(str(i) * (2*i-1))
n = int(input())
for i in range(1,n+1):#上部分:正向循环遍历
print(' '*(n-i)+str(i)*(2*(i-1)+1))
for i in range(n-1,0,-1):#下部分:就是上面的循环的倒过来,同时去除5的部分
print(' '*(n-i)+str(i)*(2*(i-1)+1))
给一个通用的函数,一行循环全部搞定:
def diamond(n):
for i in [*range(1,n+1),*range(n-1,0,-1)]:
print(f'{(str(i)*(i*2-1)):^{n*2-1}}')
>>> diamond(6)
1
222
33333
4444444
555555555
66666666666
555555555
4444444
33333
222
1
>>> diamond(5)
1
222
33333
4444444
555555555
4444444
33333
222
1
>>> diamond(7)
1
222
33333
4444444
555555555
66666666666
7777777777777
66666666666
555555555
4444444
33333
222
1
这里有一个相同问题: 请查看是否对问题有帮助~
https://ask.csdn.net/questions/7731545