在想到一种漂亮的打印表头的方法时,我发现默认情况下整数是右对齐的,但字符串是左对齐的。
例如:
>>> 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
我只是认为所有物体都会以聋人的方式对齐,我问为什么不是这样。
答案 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。这里的对齐说明符是>
。