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)