python格式化输出杨辉三角形:不同行数的格式输出不同的三角形,用递归法
时间: 2024-10-22 16:06:27 浏览: 38
在Python中,我们可以使用递归来生成并格式化输出杨辉三角。杨辉三角是一种数组形式的几何图形,其中每个数字表示该位置上两个较小数字的和。下面是使用递归函数实现杨辉三角的一种方法:
```python
def pascal_triangle(n):
# 杨辉三角的第一行和最后一行只有一个元素
if n == 0 or n == 1:
return [1]
# 使用列表推导式生成前一行,并添加当前行的第一个元素
triangle = [1] + [0] * (n - 1) + [1]
# 从第二行开始,每一行都是前一行加上当前行索引的值
for i in range(2, n):
triangle.insert(i, triangle[i-1] + triangle[i-2])
return triangle
# 格式化输出指定行数的杨辉三角
def format_output(triangle, row_num):
print("第{}行杨辉三角:".format(row_num))
for num in triangle:
print(' '.join(str(num).rjust(3)), end=' ')
print()
# 测试递归函数和格式输出
rows = [5, 6, 7] # 需要输出的行数
for row in rows:
format_output(pascal_triangle(row), row)
```
在这个代码中,`pascal_triangle()`函数计算给定行数的杨辉三角,然后`format_output()`函数将其格式化为字符串打印出来。注意,由于Python中字符串宽度填充的方式,默认是左对齐,这里我们使用`str().rjust(3)`将每个数字右对齐以便保持良好的视觉效果。
阅读全文