擅长:python、mysql、java
<p>我将使用括号使表达式更具可读性:</p>
<pre><code>return ('%.0f' % float_var) if float_var else float_var
</code></pre>
<p>当我第一次看到它的时候</p>
<pre><code>return '%.0f' % (float_var if float_var else float_var)
</code></pre>
<p>那就太傻了。我得试一下,以确定哪种方法有效。</p>
<p>顺便说一句,你的第一个例子并不等同于你的第二个例子</p>
<pre><code>if float_var:
return formatted_string
else:
return None
</code></pre>
<p>这将始终返回格式化字符串或无格式字符串。如果传入的任何计算结果为False(False、0、0.0、“”、[]等)的内容都将返回该值,因此返回类型可以是string、boolean、list、int、float等。这可能不是您想要的,特别是如果0.0是float_var的合法值,我会将您的代码更改为:</p>
<pre><code>return ('%.0f' % float_var) if isinstance(float_var, float) else None
</code></pre>
<p>或者:</p>
<pre><code>try:
return "%.0f" % float_var
except TypeError:
return None
</code></pre>
<p>它将通过将其他整数(和长整数)转换为浮点来工作。</p>