📅  最后修改于: 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 代码,你可以按照自己的喜好选择一种。