Python 表格打印

编写一个名为printTable()函数,它接收字符串的列表的列表 将它显示在组织良好的表格中,每列右对齐。假定所有内层列表都包含同样数目的字符串。例如,可能看起来像这样 :


 tableDate=[['apples', 'oranges', 'cherries', 'banana'],
                   ['Alice', 'Bob', 'Carol', 'David'],
                   ['dogs', 'cats', 'moose', 'goose']]


你的printdata()函数将打印出:


        apples      Alice       dogs
      oranges       Bob        cats
       cherries    Carol    moose
       banana     David    goose


思路:先计算出内层字符串的宽度,然后在打印。打印时最长宽度+5表示打印出的行字符串之间间隔5个字符

tabledata=[['apples', 'oranges', 'cherries', 'banana'],
           ['Alice', 'Bob', 'Carol', 'David'],
           ['dogs', 'cats', 'moose', 'goose']]

colwidth=[]

def js(table,colwidth):    #计算出每一行的字符所占的最大长度
    for row in range(len(table)):
        maxs=0
        for col in range(len(table[0])):
            if len(table[row][col])>maxs:
                maxs=len(table[row][col])
        colwidth.append(maxs)         #刚开始时老是调试出错 ,原因是更新列表的方式错了
    return  colwidth

def dy(table,colwidth):   #打印表 
    for col in range(len(table[0])):
        for row in range(len(table)):
            print(table[row][col].rjust(colwidth[row]+5),end='')#打印时字符串之间空5个字符
        print()

colwidth=js(tabledata,colwidth)
#print(colwidth)
dy(tabledata,colwidth)

            
                    

 

你可能感兴趣的:(Python练习)