📜  Python程序用星形边框显示数字的半菱形图案

📅  最后修改于: 2022-05-13 01:54:57.236000             🧑  作者: Mango

Python程序用星形边框显示数字的半菱形图案

给定一个数字 n,任务是编写一个Python程序来打印一个带有星形边框的数字的半菱形图案。

例子:

Input: n = 5
Output:

*
*1*
*121*
*12321*
*1234321*
*123454321*
*1234321*
*12321*
*121*
*1*
*


Input: n = 3
Output:

*
*1*
*121*
*12321*
*121*
*1*
*

方法:

  • 在这个程序中将运行两个 for 循环以打印数字和星星。
  • 首先打印 * 然后运行 for 循环从 1 到 (n+1) 以升序打印到行。
  • 在这个特定的 for 循环中,* 将被打印到 i,然后另一个 for 循环将从 1 到 i+1 运行,以便按升序打印数字。
  • 现在又一个循环将从 i-1 运行到 0,以便以相反的顺序打印数字。
  • 现在将打印一颗星,此 for 循环将结束。
  • 现在第二个 for 循环将从 n-1 运行到 0 以打印中间的模式,其中数字以相反的方式。
  • 在这个 for 循环中,也将完成与第一个 for 循环相同的工作。
  • 将显示所需的图案。

下面是上述模式的实现:

Python3
# function to display the pattern up to n
def display(n):  
    
    print("*")
      
    for i in range(1, n+1):
        print("*", end="")
          
        # for loop to display number up to i
        for j in range(1, i+1):  
            print(j, end="")
  
        # for loop to display number in reverse direction    
        for j in range(i-1, 0, -1):  
            print(j, end="")
  
        print("*", end="")
        print()
  
    # for loop to display i in reverse direction
    for i in range(n-1, 0, -1):
        print("*", end="")
        for j in range(1, i+1):
            print(j, end="")
  
        for j in range(i-1, 0, -1):
            print(j, end="")
  
        print("*", end="")
        print()
  
    print("*")
  
  
# driver code
n = 5
print('\nFor n =', n)
display(n)
  
n = 3
print('\nFor n =', n)
display(n)


输出:

For n = 5
*
*1*
*121*
*12321*
*1234321*
*123454321*
*1234321*
*12321*
*121*
*1*
*

For n = 3
*
*1*
*121*
*12321*
*121*
*1*
*