我想用空格填充字符串。我知道下面的方法适用于0:
>>> print "'%06d'"%4
'000004'
但我想要这个的时候该怎么办呢?:
'hi '
当然,我可以测量字符串长度和做str+" "*剩,但我想要最短的方式。
我想用空格填充字符串。我知道下面的方法适用于0:
>>> print "'%06d'"%4
'000004'
但我想要这个的时候该怎么办呢?:
'hi '
当然,我可以测量字符串长度和做str+" "*剩,但我想要最短的方式。
当前回答
你可以使用str.ljust(width[, fillchar]):
返回长度为width的字符串中左对齐的字符串。填充使用指定的fillchar(默认为空格)。如果width小于len(s)则返回原始字符串。
>>> 'hi'.ljust(10)
'hi '
其他回答
你也可以居中你的字符串:
'{0: ^20}'.format('nice')
对于一个灵活的方法,即使在格式化复杂的字符串时也能工作,你可能应该使用字符串格式化迷你语言,
使用任意一个f字符串
>>> f'{"Hi": <16} StackOverflow!' # Python >= 3.6
'Hi StackOverflow!'
或者str.format()方法
>>> '{0: <16} StackOverflow!'.format('Hi') # Python >=2.6
'Hi StackOverflow!'
使用Python 2.7的字符串迷你格式:
'{0: <8}'.format('123')
这是左对齐,用' '字符填充到8个字符。
字符串格式方法允许您使用嵌套的关键字参数做一些有趣的事情。最简单的例子:
>>> '{message: <16}'.format(message='Hi')
'Hi '
如果你想把16作为一个变量传入:
>>> '{message: <{width}}'.format(message='Hi', width=16)
'Hi '
如果你想传入整个工具包的变量,那么:
'{message:{fill}{align}{width}}'.format(
message='Hi',
fill=' ',
align='<',
width=16,
)
结果是(你猜对了):
'Hi '
对于所有这些,你可以使用python 3.6+ f-strings:
message = 'Hi'
fill = ' '
align = '<'
width = 16
f'{message:{fill}{align}{width}}'
当然,结果是:
'Hi '
只要去掉0,它就会添加空格:
>>> print "'%6d'"%4