Python习惯用法 - 检查零值
在Python中,检查一个值是否为零的标准方法是什么呢?
if n == 0:
或者
if not n:
我觉得第一个方法更明确一些,但另一方面,像空的序列或者None这样的情况,检查方式和第二个例子类似。
2 个回答
3
我非常支持“说出你的意思”。你提到的两个说法其实意思不一样。第一个说法的意思是:
如果 n 等于 0
而第二个说法的意思是:
如果 n 的真假值是 False
虽然在实际使用中,对于整数来说,它们的效果是一样的,但实际的意思应该决定你选择哪个说法。
4
如果你想检查一个数字是否为零,应该用 if n == 0
。你第二个表达式并不是在检查零,而是在检查任何被认为是假的值。
我觉得关键在于你的需求;你真的想检查零吗,还是想处理很多情况,比如 n 可能不是数字类型?
为了准确回答你问的问题,我认为 n == 0
是最合适的方式。
下面是用 not n
这种方式的错误之处:
>>> def isZero(n):
... return not n;
...
>>>
>>> isZero([])
True
>>> isZero(False)
True
>>> isZero("")
True
>>>
大多数人会说这个 "isZero" 函数是不正确的。