为什么python字符串以指定宽度的格式保持对齐?

时间:2011-11-05 09:43:32

标签: python string formatting

在想到一种漂亮的打印表头的方法时,我发现默认情况下整数是右对齐的,但字符串是左对齐的。

例如:

>>> for i in (1,'x',0.0):
...     print("{0:5}".format(i))
... 
    1
x    
  0.0

通过明确设置对齐可以很容易地解决这个问题,但我想知道为什么会这样呢?

编辑:

我不是在寻找一种对齐字符串的方法,这很简单:

>>> for i in (1,'x',0.0):
...     print("{0:>5}".format(i))
... 
    1
    x
  0.0

我只是认为所有物体都会以聋人的方式对齐,我问为什么不是这样。

3 个答案:

答案 0 :(得分:1)

可能你正在寻找类似的东西

print ( "%5s" % ('x',) )
print ( "%5d" % (245,) )

输出

    x
  245

对于'为什么'这个问题,我认为答案是,当您在列中读取某些数据时,您实际上希望字符串保持对齐

a
ab
abc

而不是

   a
  ab
 abc

书中的文字也是左对齐的。对于数字,大多数自然格式是右对齐的

  7
 45
156   

对于istance来说,这是为求和,减法和乘法排列数字的方法。 Python选择实际上反映了排版约定。在表格中混合文本和数字可能被视为一种特殊情况。

答案 1 :(得分:0)

正在审核documentation。不知道这是怎么回事。

只是一个疯狂的猜测 - 我们左右读取文本字符串

答案 2 :(得分:0)

Python 3语法(也可在2.6中使用)

>>> print("{foo:>5s}\n{bar:>5d}".format(foo="a", bar=100))
    a
  100

阅读format spec。这里的对齐说明符是>