📜  程序打印梯形图案(1)

📅  最后修改于: 2023-12-03 15:11:26.893000             🧑  作者: Mango

程序打印梯形图案

梯形图案是一种常见的图案,它由等腰梯形组成,每行递增或递减。本文将介绍如何使用 Python 编写程序打印梯形图案。

方案一

第一种方案是使用两个 for 循环嵌套,输出每行的星号数量。代码如下:

def trapezoid_one(rows, symbol):
    for i in range(1, rows + 1):
        for j in range(i):
            print(symbol, end="")
        print()

其中,rows 为梯形的行数,symbol 为组成梯形的字符。

调用方法如下:

trapezoid_one(5, "*")

运行结果如下:

*
**
***
****
*****
方案二

第二种方案是利用数学公式,计算每行星号的数量,然后输出。代码如下:

def trapezoid_two(rows, symbol):
    for i in range(1, rows + 1):
        stars = 2 * i - 1
        spaces = rows - i
        print(" " * spaces + symbol * stars)

调用方法与方案一一样:

trapezoid_two(5, "*")

输出结果也一致:

    *
   ***
  *****
 *******
*********
方案三

第三种方案相对来说比较有趣,这里使用了递归算法实现梯形图案的打印。代码如下:

def trapezoid_three(rows, symbol, cur_row=1):
    if cur_row > rows:
        return
    stars = 2 * cur_row - 1
    spaces = rows - cur_row
    print(" " * spaces + symbol * stars)
    trapezoid_three(rows, symbol, cur_row + 1)

我们在函数中定义了一个额外的参数 cur_row,表示当前打印的行数。当 cur_row 大于行数 rows 时,递归结束。

调用方法与前两种一样:

trapezoid_three(5, "*")

结果如下:

    *
   ***
  *****
 *******
*********

以上是三种实现梯形图案的 Python 代码,你可以按照自己的喜好选择一种。