题目要求:
打印杨辉三角,如下图,数字以逗号间隔
实现代码如下:
import numpy as np
def pascal_triangle(n):
nums=np.zeros((n,n))
for i in range(0,n):
for j in range(i+1):
if j==0 or j==i:
num=1
else:
num=nums[i-1,j-1]+nums[i-1,j]
nums[i,j]=num
return nums
def print_triangle(triangle):
for row in triangle:
for i, value in enumerate(row):
print(value, end="" if i == len(row) - 1 else ", ")
print()
n=5 #修改n可以生成不同行数的杨辉三角
triangle=pascal_triangle(n)
print_triangle(triangle)
结果如下:
代码2:
def pascal_triangle(n):
triangle = []
for i in range(n):
row = []
for j in range(i + 1):
if j == 0 or j == i:
value = 1
else:
value = triangle[i - 1][j - 1] + triangle[i - 1][j]
row.append(value)
triangle.append(row)
return triangle
def print_triangle(triangle):
for row in triangle:
for i, value in enumerate(row):
print(value, end="" if i == len(row) - 1 else ", ")
print()
n = 5
triangle=pascal_triangle(n)
print_triangle(triangle)
结果如下:
其中,enumerate() 函数用于将一个可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标,此处用于同时获取数字的索引(i
)和值(value
)