python编程快速上手之第6章实践项目正确答案。
看到网上好多答案都不对,反正我是没有找到一个正确答案,只找到一个最接近的,于是对他的代码进行优化。
源代码和我优化过的代码都附上,供大家参考。
这是源代码,有点问题,但思路值得借鉴。源代码链接:https://blog.csdn.net/do_care/article/details/79024539
def tablePrint(tableDate):
#确定每列的宽度
columnWidth=[]
for k in range(len(tableDate)):
length=len(tableDate[k][0])
for v in range(len(tableDate[0])):
if len(tableDate[k][v])>length:
length=len(tableDate[k][v])
length+=1
columnWidth.append(length)
#排版对齐
for k in range(len(tableDate[0])):
new=tableDate[0][k].rjust(columnWidth[0])+' '
for v in range(1,len(tableDate)):
new=new+tableDate[v][k].ljust(columnWidth[v])
print(new)
tableDateOne=[['apple','oranges','cherries','banana'],
['alice','bob','carol','david'],
['dogs','cats','moose','goose']]
tablePrint(tableDateOne)
经过本人优化后的代码如下:
tableData = [['apples', 'oranges', 'cherries', 'banana'],
['Alice', 'Bob', 'Carok', 'David'],
['dogs', 'cats', 'moose', 'goose']]
def Printtable(tableDate):
#确定每列的宽度
colWidth=[]
for k in range(len(tableDate)):
length = 0
for v in range(len(tableDate[0])):
if len(tableDate[k][v]) > length:
length = len(tableDate[k][v])
colWidth.append(length)
#排版对齐
for k in range(len(tableDate[0])):
for v in range(0, len(tableDate)):
new = tableDate[v][k].rjust(colWidth[v])
print(new, end=" ")
print()
Printtable(tableData)
下面是输出结果对比,眼尖的同学应该能看出问题。