制作带有x行数的文本表

时间:2018-06-02 07:06:35

标签: python

我想在python中创建一个基于文本的表。它基于竞赛,用户可以选择轮数。随着轮次通过,该轮次将添加一个分数。我试着用一个人的名字和圆形的列做一个表。问题是为每轮创建列。

score_board = [["Charles",32,432,23],["Mathew",432,334,32]]
x = 2
print("|   Name   |"  + ("| Round 1 " )*x)
for item in score_board:
    print("|" + str(item[0]) + " "*(10-len(item[0]))+ "|" + str(item[1]) + " "*(10-len(str(item[1])))+ "|")

1 个答案:

答案 0 :(得分:0)

正如@NinjaWarrior所说,你需要使用格式

score_board = [["Charles",32,432,23],["Mathew",432,334,32]]
round_number = 3
print("|   Name   "  + ''.join(["| Round %02d " % round_iter for round_iter in range(1,round_number+1)]))
for score in score_board:
    print( ''.join(['|%-10s' % item for item in map(str, score)]))

给出了

|   Name   | Round 01 | Round 02 | Round 03 
|Charles   |32        |432       |23        
|Mathew    |432       |334       |32   

printf格式描述为here

"%s" % "robert"输出"robert"

"|%s" % "robert"输出"|robert"

"|%10s" % "robert"填充左侧以形成10个长度的字符串:输出"| robert"

"|%-10s" % "robert"向右填充以形成10个长度的字符串:输出"|robert "

它与数字的逻辑相同:

"%d" % 2输出2

"%02d" % 2输出02

"%03d" % 2输出002