<p>使用<code>format</code>方法,您可以执行以下操作:</p>
<pre><code>for num in [3e9, 3.1e9, 3.01e9, 3e2, 3.1e2, 3.01e2]:
print ('{n:7.2{c}} {n:7.2f} {n:7.2e}'.format(n=num, c='e' if num > 1e4 else 'f'))
</code></pre>
<p>输出:</p>
<pre><code>3.00e+09 3000000000.00 3.00e+09
3.10e+09 3100000000.00 3.10e+09
3.01e+09 3010000000.00 3.01e+09
300.00 300.00 3.00e+02
310.00 310.00 3.10e+02
301.00 301.00 3.01e+02
</code></pre>
<p>它有两个部分可能不太为人所知。</p>
<h3>一。参数化字符串格式</h3>
<p>除了简单的格式:</p>
<pre><code>>>> '{}'.format(3.5)
'3.5'
</code></pre>
<p>以及更详细地说明结果的格式:</p>
<pre><code>>>> '{:5.2f}'.format(3.5)
' 3.50'
</code></pre>
<p>您可以在<code>format</code>中使用关键字参数,您可以在字符串中访问这些参数:</p>
<pre><code>>>> '{num:5.2f}'.format(num=3.5)
' 3.50'
</code></pre>
<p>您也可以将其用于格式规范本身:</p>
<pre><code>>>> '{:5.{deci}f}'.format(3.5, deci=3)
'3.500'
</code></pre>
<h3>2。<code>if</code>表达式</h3>
<p>除了<code>if</code>语句之外,还有一个<code>if</code>表达式,也就是<a href="https://docs.python.org/3/reference/expressions.html#conditional-expressions" rel="nofollow noreferrer">ternary operator</a>。</p>
<p>所以,这个表达式:</p>
<pre><code>a = 1
b = 2
res = 10 if a < b else 20
</code></pre>
<p>相当于这句话:</p>
<pre><code>if a < b:
res = 10
else:
res= 20
</code></pre>
<p>把两者放在一起会产生如下结果:</p>
<pre><code>'{num:7.2{c}}'.format(num=num, c='e' if num > 1e4 else 'f')
</code></pre>