我想用空格填写一个字符串。我知道以下适用于零的:
>>> print "'%06d'"%4
'000004'
但是当我想要这个时,我该怎么办?:
'hi '
当然,我可以测量字符串长度和做str+" "*leftover
,但我想最短的方式。
您可以使用str.ljust(width[, fillchar])
执行此操作:
返回长度为width的字符串中左对齐的字符串。使用指定的fillchar(默认为空格)进行填充。如果width小于len(s)
,则返回原始字符串。
>>> 'hi'.ljust(10)
'hi '
对于一个灵活的方法,即使在格式化复杂的字符串,你可能应该使用string-formatting mini-language,
>>> f'{"Hi": <16} StackOverflow!' # Python >= 3.6
'Hi StackOverflow!'
或str.format()
方法
>>> '{0: <16} StackOverflow!'.format('Hi') # Python >=2.6
'Hi StackOverflow!'
新的(ish)string format method允许您使用嵌套的关键字参数做一些有趣的事情。最简单的情况:
>>> '{message: <16}'.format(message='Hi')
'Hi '
如果要将16
作为变量传入:
>>> '{message: <{width}}'.format(message='Hi', width=16)
'Hi '
如果要传入whole kit and kaboodle的变量:
'{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 '
您可以尝试以下操作:
print "'%-100s'" % 'hi'
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(23条)