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


半菱形图案是一种几何图案,类似于菱形,但只覆盖菱形的一半。

可以使用编程中的循环创建菱形图案。通过控制循环和每行打印的字符数量,我们可以修改图案以实现不同的形状和排列。

在本文中,我们将编写一个Python程序,该程序显示带有星号边框的半菱形数字图案。

输入输出场景

让我们探讨一些显示带有星号边框的半菱形数字图案的输入输出场景。

场景1 -

Input: 
n = 3
Output:
*1*
*121*
*12321*
*121*
*1*

场景2 -

Input: 
n = 5
Output:
*1*
*121*
*12321*
*1234321*
*123454321*
*1234321*
*12321*
*121*
*1*

方法

我们可以按照以下步骤显示带有星号边框的半菱形数字图案

  • 定义一个函数,该函数接收一个输入n,表示图案中的行数。

  • 从图案的上半部分开始

    • 使用for循环迭代范围从1到n+1(包含)。

    • 对于每次迭代,在行的开头打印一个星号(*)。

    • 使用嵌套for循环按递增顺序从1到i打印数字。

    • 在行的末尾打印一个星号。

  • 移至图案的下半部分

    • 使用for循环迭代范围从n-1到0(不包含),步长为-1。

    • 对于每次迭代,在行的开头打印一个星号。

    • 使用嵌套for循环按递增顺序从1到i打印数字。

    • 在行的末尾打印一个星号。

  • 最后,使用特定的n值调用该函数以生成所需的输出。

示例

让我们看看以下Python程序,该程序显示带有星号边框的半菱形数字图案。

def print_half_diamond_pattern(n):
    # Upper half
    for i in range(1, n + 1):
        # Print stars
        print("*", end="")
        
        # Print numbers in increasing order
        for j in range(1, i + 1):
            print(j, end="")
        
        # Print numbers in decreasing order
        for j in range(i - 1, 0, -1):
            print(j, end="")
        
        # Print stars
        print("*")

    # Lower half
    for i in range(n - 1, 0, -1):
        # Print stars
        print("*", end="")
        
        # Print numbers in increasing order
        for j in range(1, i + 1):
            print(j, end="")
        
        # Print numbers in decreasing order
        for j in range(i - 1, 0, -1):
            print(j, end="")
        
        # Print stars
        print("*")


# define n value 
n = 9
print_half_diamond_pattern(n)

输出

*1*
*121*
*12321*
*1234321*
*123454321*
*12345654321*
*1234567654321*
*123456787654321*
*12345678987654321*
*123456787654321*
*1234567654321*
*12345654321*
*123454321*
*1234321*
*12321*
*121*
*1*

示例

在此示例中,图案由每行递增的数字组成,下半部分没有递减的数字。其余结构与前一个示例相同。

def print_half_diamond_pattern(n):
    # Upper half
    for i in range(1, n + 1):
        # Print stars
        print("*", end="")
        
        # Print numbers in increasing order
        for j in range(1, i + 1):
            print(j, end="")
        
        # Print stars
        print("*")

    # Lower half
    for i in range(n - 1, 0, -1):
        # Print stars
        print("*", end="")
        
        # Print numbers in increasing order
        for j in range(1, i + 1):
            print(j, end="")
        
        # Print stars
        print("*")


# define n value 
n = 5
print("Half diamond pattern: ")
print_half_diamond_pattern(n)

输出

Half diamond pattern: 
*1*
*12*
*123*
*1234*
*12345*
*1234*
*123*
*12*
*1*

更新于:2023年8月29日

801 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告