如何用Python写数字金字塔

金字塔上下部分的编写有什么联系,怎么写?
只会写上面那一部分
编写程序写出下面图案

img

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