【发布时间】:2011-02-01 12:57:21
【问题描述】:
如何将表达式写得更短:
return '%.0f' % float_var if float_var else float_var
或
if float_var:
return formatted_string
else:
return None
谢谢!
【问题讨论】:
-
“更短”?您的第一个示例显然“更短”。为什么要问哪个更短?您是在要求第三个更神奇地更短的示例吗?由于您的问题显示哪个更短,因此不清楚您需要知道什么。
-
这两个示例甚至不是相同的代码。除了显而易见的(显然以某种未显示的方式预先计算“formatted_string”),第二个返回
None,其中第一个返回float_var,可能是None,或False,或0.0,或其他一些东西......谁赞成这些东西? -
@Peter Hansen:好问题。我什至无法解释这个问题,它已经得到了赞成。我希望投票者会留下一些“+1 ...”的问题,为什么这个问题很酷。
-
@Peter Hansen,@S。 Lott:解释 StackOverflow 问题更像是一门艺术,而不是一门科学。对于下面的答案,我将其解释为“我知道两种编写 if-else 三元条件的方法。有更短的方法吗?我什么时候应该使用其中一种?”