我想在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])))+ "|")
答案 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