我想用空格填充字符串。我知道下面的方法适用于0:

>>> print  "'%06d'"%4
'000004'

但我想要这个的时候该怎么办呢?:

'hi    '

当然,我可以测量字符串长度和做str+" "*剩,但我想要最短的方式。


当前回答

你也可以居中你的字符串:

'{0: ^20}'.format('nice')

其他回答

一个很好的技巧来代替各种打印格式:

(1)右边空格垫:

('hi' + '        ')[:8]

(2)左侧前导0的垫:

('0000' + str(2))[-4:]

Python中不推荐使用这种方法,但这种逻辑对于缺乏高质量文本格式化功能的语言和宏非常有用。:)

你也可以居中你的字符串:

'{0: ^20}'.format('nice')

只要去掉0,它就会添加空格:

>>> print  "'%6d'"%4

你可以试试这个:

print "'%-100s'" % 'hi'

对于一个灵活的方法,即使在格式化复杂的字符串时也能工作,你可能应该使用字符串格式化迷你语言,

使用任意一个f字符串

>>> f'{"Hi": <16} StackOverflow!'  # Python >= 3.6
'Hi               StackOverflow!'

或者str.format()方法

>>> '{0: <16} StackOverflow!'.format('Hi')  # Python >=2.6
'Hi               StackOverflow!'