惯用Python - 检查零

时间:2014-05-12 13:29:43

标签: python pep8 idiomatic

在Python中检查零值的惯用方法是什么?

if n == 0:

if not n:

我认为第一个更符合明确的精神,但另一方面,空序列或无类似于第二个例子。

2 个答案:

答案 0 :(得分:2)

如果要检查零,则应使用if n == 0。您的第二个表达式不检查零,它会检查任何计算结果为false的值。

我认为答案在于你的要求;你真的想检查零,还是想要处理n可能是非数字类型的很多情况?

本着回答问题的精神,我认为n == 0是可行的方法。

这是not n路线的错误:

>>> def isZero(n):
...    return not n;
... 
>>> 
>>> isZero([])
True
>>> isZero(False)
True
>>> isZero("")
True
>>> 

大多数人会说这是" isZero"功能不正确。

答案 1 :(得分:2)

我是说出你的意思的重要支持者。你的两个陈述意味着不同的东西第一个意思是:

  

如果n等于0

而第二种意思是:

  

如果n的真值是假的

虽然它们在实践中具有相同的效果 for integers ,但实际意义应该决定你使用哪种效果。