Python习惯用法 - 检查零值

3 投票
2 回答
1727 浏览
提问于 2025-04-18 06:17

在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" 函数是不正确的。

撰写回答