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*
*