python编程第六章
字符串操作
项目实践表格打印
"""表格打印
written by Snowball
date:2021-7-1"""
def print_table(tabledata):
colwidths=[0]*len(tabledata)
n=''
for x in range(len(tabledata)):
t=''
for y in range(len(tabledata[0])):
t=t + str(len(tabledata[x][y]))
#print(t,end=',')
#print('\n',end='')
colwidths[x]=int(max(t))
#print(colwidths)
for i in range(len(colwidths)):
n=n+str(colwidths[i])
num=max(n)
#print(num)
for y in range(len(tabledata[0])):
for x in range(len(tabledata)):
print(tabledata[x][y].rjust(int(num)),end='')
print('\n',end='')
tabledata1=[['apples', 'oranges', 'cherries', 'banana'],
['Alice', 'Bob', 'Carol', 'David'],
['dogs', 'cats', 'moose', 'goose']]
tabledata2=[['dogs', 'cats', 'moose', 'goose'],
['Alice', 'Bob', 'Carol', 'David'],
['apples', 'oranges', 'cherries', 'banana']]
print_table(tabledata1)
print('\n',end='')
print_table(tabledata2)
代码中有几个print函数用于跟踪数据,查看处理过程,为不影响输出结果,现已经注释掉
输出结果如下:
加深对作用域理解
间距发生变更
"""表格打印,间距发生变化
written by Snowball
date:2021-7-1"""
def print_table(tabledata):
colwidths=[0]*len(tabledata)
for y in range(len(tabledata[0])):
t=''
for x in range(len(tabledata)):
t=t+str(len(tabledata[x][y]))
colwidths[x]=max(t)
print(tabledata[x][y].rjust(int(colwidths[x])),end='')
print('\n',end='')
tabledata=[['apples', 'oranges', 'cherries', 'banana'],
['Alice', 'Bob', 'Carol', 'David'],
['dogs', 'cats', 'moose', 'goose']]
print_table(tabledata)
代码优化
对colwidth数字列表排序,数字由大到小排列
"""表格打印,间距固定
written by Snowball
date:2021-7-1"""
def print_table(tabledata):
colwidths=[0]*len(tabledata)
n=''
for x in range(len(tabledata)):
t=''
for y in range(len(tabledata[0])):
t=t + str(len(tabledata[x][y]))
#print(t,end=',')
#print('\n',end='')
colwidths[x]=int(max(t))
#print(colwidths)
"""for i in range(len(colwidths)):
n=n+str(colwidths[i])
num=max(n)
#print(num)"""
colwidths.sort(reverse=True)
for y in range(len(tabledata[0])):
for x in range(len(tabledata)):
print(tabledata[x][y].rjust(int(colwidths[0])),end='')
print('\n',end='')
tabledata1=[['apples', 'oranges', 'cherries', 'banana'],
['Alice', 'Bob', 'Carol', 'David'],
['dogs', 'cats', 'moose', 'goose']]
tabledata2=[['dogs', 'cats', 'moose', 'goose'],
['Alice', 'Bob', 'Carol', 'David'],
['apples', 'oranges', 'cherries', 'banana']]
print_table(tabledata1)
print('\n',end='')
print_table(tabledata2)