在python中用数字创建菱形

时间:2018-12-03 11:23:55

标签: python numbers

如果我输入数字,则通过数字创建菱形,它应该打印与输入数字相同的行数,并打印数字直到指定的数字,我没有确切的解决方法,请帮帮我。

示例:

如果输入为4

这将是预期的输出。

       1
     1 2 3
     1 2 3
       1

如果输入为5

这将是预期的输出。

          1
        1 2 3
      1 2 3 4 5
        1 2 3
          1

如果输入为7

这将是预期的输出。

             1
           1 2 3
         1 2 3 4 5
       1 2 3 4 5 6 7
         1 2 3 4 5
           1 2 3
             1

我尝试过

size = 4
maxlen = len(str(size * size))
m = size * 2 - 1
matrix = [[' ' * maxlen] * m for _ in range(m)]

for n in range(size * size):
     r = n // size
     c = n % size
     matrix[c + r][size - r - 1 + c] = '{0:{1}}'.format(n + 1, maxlen)

print '\n'.join(''.join(row) for row in matrix)

但是我没有确切的解决方案。请帮帮我..

1 个答案:

答案 0 :(得分:0)

def pattern_gen(n):
k = n
for i in range(1, n + 1):
    if i % 2 != 0:
        for j in range(0, int(k/2)):
            print(end=" ")
        for j in range(1, i+1):
            print(j, end="")
        print()
    k = k - 1
k = 1
if n % 2 != 0:
    n = n-1
    k = 2
for i in range(n, 0, -1):
    if i % 2 != 0:
        for j in range(0, int(k/2)):
            print(end=" ")
        for j in range(1, i+1):
            print(j, end="")
        print()
    k = k + 1