shuiqinghan2012的个人空间 https://passport2.21ic.com/?875044 [收藏] [复制] [RSS]

日志

6.7 实践项目

已有 609 次阅读2020-6-23 20:34 |个人分类:Python|系统分类:兴趣爱好


# 6.7 实践项目 0623
# 作为实践,编程完成下列任务。
# 表格打印
# 编写一个名为printTable()的函数,它接受字符串的列表的列表,将它显示在组织良好的表格中,
# 每列右对齐。假定所有内层列表都包含同样数目的字符串。例如,该值可能看起来像这样:
# tableData = [['apples', 'oranges', 'cherries', 'banana'],
#              ['Alice', 'Bob', 'Carol', 'David'],
#              ['dogs', 'cats', 'moose', 'goose']]
# 你的printTable()函数将打印出:
#   apples Alice dogs
#  oranges Bob    cats
# cherries Carol moose
#   banana David goose

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

def printTable(table):
    colWidths = [0] * len(tableData)  #定义一个列表,列表长度为tableData的长度,用于存贮每列的元素个数
    colWidthsMax = 0            #定义一个最大宽度,用于存储列表中列表元素的最大宽度
    # print(colWidths)
    for i in range(len(tableData)): #循环访问列表
        # print(i)
        colWidths[i] = len(tableData[i]) #列表colWidths[i]的每个位存放tableData[i]列表的元素个数
        for j in range(len(tableData[i])): #循环访问列表中列表元素
            if colWidthsMax < len(tableData[i][j]): #如果列表中列表元素的宽度大于最大宽度
                colWidthsMax = len(tableData[i][j]) #最大宽度赋值
        for item in tableData[i]:   #item 在子列表中
            print(item.rjust(colWidthsMax),end=' ')         #右对齐打印
        print()
    print(colWidthsMax)

printTable(tableData)

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)