Python 3.3 - 格式化表中的信息

时间:2014-01-15 11:42:19

标签: python python-3.3

目前我正在尝试将表中的信息显示到控制台行。我尝试过格式化数据,但似乎并不想改变。

格式代码为:

  print("{:>21}".format("Student Table")) #Title
  print("{:>5} {:>8} {:>8}".format(col_names[0], col_names[1], col_names[2])) #Column Names
  for row in rows:    
      print("{:^8} {:<50} {:<8}".format(*row)) #information formatting

然后数据显示以下内容:

        Student Table
StudentID     Name     Year
   1     Dan                                                13      
   2     Laura                                              12      
   3     Joe                                                13      
   4     David                                              13      
   5     Jake                                               13

我正在尝试重新定位名称信息,并将其从左侧对齐,以便所有内容与列标题对齐。

我尝试更改信息格式的中间数字,但信息似乎没有改变!

请告诉我如何排列信息。

2 个答案:

答案 0 :(得分:2)

正文格式与标题格式不匹配。 StudentID是9个字符。所以第一列长度应该增加。

print("{:>9} {:<50} {:<8}".format(*col_names))
for row in rows:    
    print("{:^9} {:<50} {:>8}".format(*row))

答案 1 :(得分:0)

除了 falsetru 的回答之外,请注意您可以拥有一个非常动态的格式化字符串;这样,可以根据您的值设置列的左侧或右侧和宽度:

>>> '{0:{1}>{2}}'.format('some', '*', 10)
'******some'
>>> '{0:{1}{2}{3}}'.format('some', '*', '<', 10)
'some******'
>>> '{0:{1}{2}{3}}'.format('some', '*', '>', 10)
'******some'

另一个好主意是定义格式化字符串一次,并在任何可能的地方使用它。