如何将包含多个字符的python字符串格式化为pading部分
这对填充单个字符都很好:如何将包含多个字符的python字符串格式化为pading部分,python,string,templates,format,Python,String,Templates,Format,这对填充单个字符都很好: >>> '{:{pad}>{num}}'.format('12345',num='10', pad='a') aaaaa12345 但是,如何使用“abc”作为填充字符打印出abcab12345 这很糟糕: >>> '{:{pad}>{num}}'.format('12345',num='10', pad='abc') ---------------------------------------------------
>>> '{:{pad}>{num}}'.format('12345',num='10', pad='a')
aaaaa12345
但是,如何使用“abc”作为填充字符打印出abcab12345
这很糟糕:
>>> '{:{pad}>{num}}'.format('12345',num='10', pad='abc')
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-38-85d5680ad88a> in <module>()
----> 1 '{:{pad}>{num}}'.format('hello',num='10', pad='abc')
ValueError: Invalid format specifier
>>'{:{pad}>{num}}'。格式('12345',num='10',pad='abc')
---------------------------------------------------------------------------
ValueError回溯(最近一次调用上次)
在()
---->1'{:{pad}>{num}}'。格式('hello',num='10',pad='abc')
ValueError:格式说明符无效
我喜欢python3 BTW中的迷你格式语言;-) 您应该连接
格式
操作(提示:您需要为每个格式嵌套级别使用双精度{}
):
这让我们得到结果'----12345'
这里有一个我真的不明白想要的输出是什么,你介意把问题扩大一点吗?@Netwave我认为想要的输出是
abcab12345
。这是一个多字符的pad
baseFmtStr = "'{{{{:{{pad}}>{num}}}}}'"
resultStr = baseFmtStr.format(num=10).format(pad='-').format(12345)