我想用空格填充字符串。我知道下面的方法适用于0:
>>> print "'%06d'"%4
'000004'
但我想要这个的时候该怎么办呢?:
'hi '
当然,我可以测量字符串长度和做str+" "*剩,但我想要最短的方式。
我想用空格填充字符串。我知道下面的方法适用于0:
>>> print "'%06d'"%4
'000004'
但我想要这个的时候该怎么办呢?:
'hi '
当然,我可以测量字符串长度和做str+" "*剩,但我想要最短的方式。
当前回答
使用Python 2.7的字符串迷你格式:
'{0: <8}'.format('123')
这是左对齐,用' '字符填充到8个字符。
其他回答
你可以试试这个:
print "'%-100s'" % 'hi'
一个很好的技巧来代替各种打印格式:
(1)右边空格垫:
('hi' + ' ')[:8]
(2)左侧前导0的垫:
('0000' + str(2))[-4:]
Python中不推荐使用这种方法,但这种逻辑对于缺乏高质量文本格式化功能的语言和宏非常有用。:)
你也可以居中你的字符串:
'{0: ^20}'.format('nice')
你可以使用str.ljust(width[, fillchar]):
返回长度为width的字符串中左对齐的字符串。填充使用指定的fillchar(默认为空格)。如果width小于len(s)则返回原始字符串。
>>> 'hi'.ljust(10)
'hi '
从Python 3.6开始,你可以这样做
>>> strng = 'hi'
>>> f'{strng: <10}'
字面值字符串插值。
或者,如果你的填充大小是一个变量,就像这样(谢谢@Matt M.!):
>>> to_pad = 10
>>> f'{strng: <{to_pad}}'