定义一个python函数,传入正整数参数M,输出M行的杨辉三角,为了使格式美观,采用m行中最大数的位数做为数据输出时的占位宽度和数据间的间隔
时间: 2024-10-25 18:06:19 浏览: 75
在Python中,我们可以定义一个函数来生成杨辉三角,使用嵌套循环并计算每个位置的最大数字长度作为格式化依据。下面是一个实现的例子:
```python
def print_pascal_triangle(M):
# 初始化三角形的第一行
triangle = [[1]]
for i in range(1, M):
# 每一行的元素数量等于当前行数
row = [0] * (i + 1)
# 第一个和最后一个元素始终为1
row[0], row[-1] = 1, 1
# 使用前一行的值来填充当前行
for j in range(1, i):
row[j] = triangle[i - 1][j - 1] + triangle[i - 1][j]
triangle.append(row)
max_digits = len(str(max([max(row) for row in triangle])))
for row in triangle:
formatted_row = ' '.join(str(num).rjust(max_digits) for num in row)
print(formatted_row)
# 调用函数,例如输出5行的杨辉三角
print_pascal_triangle(5)
```
这个函数首先创建一个空的列表表示杨辉三角,并通过循环逐步添加每一行。然后,它找到所有行的最大数字的位数,并使用`str.rjust()`方法格式化每个元素,使其右边对齐且总宽度一致。
阅读全文