首页 > 解决方案 > 在 python 中打印数字金字塔模式

问题描述

我想为给定数字的用户打印数字模式。例如:如果用户输入 3,程序应生成 3 行,如下所示:

     1
   2 3 2
 4 5 6 5 4

如果用户输入 4 并且输出必须是:

      1
    2 3 2
  4 5 6 5 4
7 8 9 10 9 8 7

我的代码如下:

a=3
num = 1
num1=2
for x in range(0,a+1):
    for y in range(0,a-x):
        print(end="* ")
    for y in range(x,0,-1):
        print(num,end=" ")
        num=num+1
    for y in range(2,x+1):
        print(num1,end=" ")
        num1=num1+1
    print()

我不知道我在哪里做错了。

标签: pythonpython-3.x

解决方案


这个怎么样

rows = int(input("Enter number of rows: "))

k = 0
count=0
count1=0

for i in range(1, rows+1):
    for space in range(1, (rows-i)+1):
        print("  ", end="")
        count+=1
    
    while k!=((2*i)-1):
        if count<=rows-1:
            print(i+k, end=" ")
            count+=1
        else:
            count1+=1
            print(i+k-(2*count1), end=" ")
        k += 1
    
    count1 = count = k = 0
    print()

推荐阅读