首页 > 解决方案 > 在 Python 中使用字符串格式添加空格

问题描述

我试图了解下面代码的行为。当我增加第一个花括号中的数字时,我会在第一列的左侧得到额外的空格。当我为第二个数字执行此操作时,我也会得到额外的空格,但在第二列的左侧。然而,当我为第三个做这件事时,什么都没有改变。为什么?

w = ['storm', 'ubuntu', 'singular', 'pineapple']
for i, word in enumerate(w):
    word_index = 3
    print('{:2} {:1} {:6}'.format(i, word_index, word))

标签: pythonstringwhitespace

解决方案


默认情况下,数字填充左侧,但字符串填充右侧(docs):

>>> "{:3}".format(1)
'  1'
>>> "{:3}".format("1")
'1  '

如果您希望字符串也右对齐,请指定它:

>>> "{:>3}".format("1")
'  1'

请注意,“storm”(长度 5)在填充到宽度 6 时实际上确实会得到一个额外的尾随空格,但由于它打印在右侧,您可能不会注意到。


推荐阅读