def triangel(): print ' '*(20*3)+str(1) #定义起始两行 print ' '*(19*3)+str(1)+' '*5+str(1) for i in range(3,21): if i ==3: L = [1,1] #初始化第二行 L1 = [] for j in range(2,i): z = L[i-j-1]+L[i-j] # 通过上一行构建下一层数据 L1.append(z) # 将数据添加到一个空列表中 L = [1] # 再次对L初始化 L.extend(L1) # 将两个列表合并 L.append(1) # 在L列表中添加最后一个数据“1” # 以下内容为杨辉三角的打印 t = ' '*((21-i)*3)+str(1) # 每次循环进行初始化每列的第一个数据1 for h in range(1,len(L)): # 以下为构建每列的除一个数据外的其他数据, if L[h]<10: # 如果数据小于10,就是其前面5个空格,如果 t = t + ' '*5+str(L[h]) #数据小于100,就减少一个空格,依次类推, elif L[h] <100: # 直至剩余一个空格,用于分辨相邻的数据 t = t+' '*4+str(L[h]) elif L[h] < 1000: t = t + ' '*3+str(L[h]) elif L[h] < 10000: t = t + ' '*2+str(L[h]) elif L[h] < 100000: t = t + ' '*1+str(L[h]) print t
以下是运行效果图: