第一种(设置二维列表设置每个元素为0进行替换元素)
代码演示:
n = eval(input("请输入想要的行数")) lst=[[0 for j in range(n)] for i in range(n)] # lst2=[[0]*n]*n for i in range(n): for j in range(i+1): if j==0 or j==i: lst[i][j]=1 else: lst[i][j]=lst[i-1][j-1]+lst[i-1][j] print(lst[i][j],end=" ")#按直角三角形进行输出 print() for i in range(n): #按等边三角形输出 s = " " * (n - i - 1) for j in lst[i]: if j!=0: s = s + str(j) + " " print(s)
演示结果:
请输入想要的行数7
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
第二种(计算出每一行,得到完整二维列表后进行输出)
代码演示
#给出n,输出前n行的杨辉三角 n = eval(input("请输入想要的行数")) lst = [[1],[1,1]] for i in range(2,n): #已经给出前两行,求剩余行 lst1 = lst[i-1] #上一行 print(lst1) first = [1] #定义每一行第一个数 # print(first) for j in range(i-1): #算几次 first.append(lst1[j]+lst1[j+1]) #每个数字等于上行的左右两个数字之和 first.append(1) #每行最后一个数字 lst.append(first) print("普通输出:{}".format(lst)) for i in range(n): #按等边三角形输出 s = " " * (n - i - 1) for j in lst[i]: s = s + str(j) + " " print(s)
演示结果
请输入想要的行数7
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1