擅长:python、mysql、java
<p><em>最初是作为@0x90答案的编辑发布的,但由于偏离了帖子的初衷而被拒绝,建议作为评论或答案发布,所以我在这里包括了简短的评论。</em></p>
<p>除了@0x90的答案外,还可以通过使用宽度变量(根据@user2763554的注释)使语法更加灵活:</p>
<pre><code>width=10
'{0: <{width}}'.format('sss', width=width)
</code></pre>
<p>此外,通过仅使用数字并依赖传递给<code>format</code>的参数的顺序,可以使此表达式更简洁:</p>
<pre><code>width=10
'{0: <{1}}'.format('sss', width)
</code></pre>
<p>或者甚至为最大的、潜在的非pythonical隐式紧性忽略所有数字:</p>
<pre><code>width=10
'{: <{}}'.format('sss', width)
</code></pre>
<hr/>
<h3>更新2017-05-26</h3>
<p>使用Python 3.6中的<a href="https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep498" rel="noreferrer">the introduction of formatted string literals</a>(简称“f-strings”),现在可以使用更简洁的语法访问先前定义的变量:</p>
<pre><code>>>> name = "Fred"
>>> f"He said his name is {name}."
'He said his name is Fred.'
</code></pre>
<p>这也适用于字符串格式</p>
<pre><code>>>> width=10
>>> string = 'sss'
>>> f'{string: <{width}}'
'sss '
</code></pre>