在开头格式化带空格的行

时间:2014-09-12 13:27:49

标签: python string python-3.x

考虑下面的代码

line = "I am writing a question"
print('{0: >10}'.format(line))

这不能按预期工作。我期望输出

'          I am writing a question'

我知道我可以通过其他方式实现这一点,比如首先使用一个print语句打印空格然后打印句子。但很想知道我可能做错了什么。

2 个答案:

答案 0 :(得分:4)

你的行超过10个字符;宽度是一个最小值,适用于整个列。如果要添加10个空格,请始终在格式前加上前缀:

print('          {0}'.format(line))

如果您一直希望将字符串右对齐为33个字符的列(当前行的10个空格和23个字符),则将列宽设置为:

print('{0:>33}'.format(line))

现在,当您的line值更长或更短时,将调整空白量以使输出再次变为33个字符。

演示:

>>> line = "I am writing a question"
>>> print('          {0}'.format(line))
          I am writing a question
>>> print('{0:>33}'.format(line))
          I am writing a question
>>> line = "question"
>>> print('{0:>33}'.format(line))
                         question

答案 1 :(得分:-1)

有一种内置方法:

https://docs.python.org/2/library/stdtypes.html#str.rjust

v = 'hi'
print v.rjust(4, ' ');

打印

 '  hi'