方法一:使用递归
```
def pascal_triangle(n):
if n == 0:
return []
elif n == 1:
return [[1]]
else:
row = [1]
triangle = pascal_triangle(n - 1)
last_row = triangle[-1]
for i in range(len(last_row) - 1):
row.append(last_row[i] + last_row[i+1])
row += [1]
triangle.append(row)
return triangle
n = 5
triangle = pascal_triangle(n)
for row in triangle:
print(row)
```
方法二:使用生成器
```
def pascal_triangle(n):
row = [1]
yield row
for i in range(n - 1):
row = [1] + [row[j] + row[j+1] for j in range(len(row)-1)] + [1]
yield row
n = 5
for row in pascal_triangle(n):
print(row)
```
方法三:使用列表推导式
```
n = 5
triangle = [[1]]
for i in range(1, n):
row = [1] + [triangle[i-1][j] + triangle[i-1][j+1] for j in range(len(triangle[i-1])-1)] + [1]
triangle.append(row)
for row in triangle:
print(row)
```