先写一份循环版
n = int(input('请输入三角形高度:'))
values = [1]
for i in range(n):
new_values = [1]
for index in range(len(values)):
print('%d ' % values[index], end='')
if (index < len(values) - 1):
new_values.append(values[index] + values[index + 1])
new_values.append(1)
values = new_values
print('')
再来一份定义函数递归版
def yht(number):
list_=[]
for i in range(number): #i是行数
row=[]
for j in range(i+1): #j是列数
row.append(num_(i,j)) #创建函数方法
list_.append(row)
return list_
def num_(i,j):
if j==0 or i==j:
return 1
else:
return num_(i-1,j)+num_(i-1,j-1)
if __name__=='__main__':
number=int(input('请输入三角形行数'))
for item in yht(number):
for a in item:
print(a,end=' ')
print('')
再来个列表错位相加版
def yht(number):
list_1=[0,1]
print(list_1[1])
for i in range(1,number):
list_ = [0]
list_2=list_1[1:]+[0]
for a in range(len(list_1)):
num=list_1[a]+list_2[a]
list_.append(num)
list_1=list_
for b in range(1,len(list_1)):
print(list_1[b],end=' ')
print('')
if __name__=='__main__':
yht(int(input('请输入层数')))
还看到了短短几行就写完的,但目前的我实在看不懂,繁琐的过程就当复习一下python基础语法了