使用Python实现的杨辉三角

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

以下是运行效果图:

posted @ 2017-12-22 11:38  QuiryRain  阅读(1756)  评论(0编辑  收藏  举报