您现在的位置是:亿华云 > 人工智能

Python 判断变量是否是 None 的三种写法

亿华云2025-10-03 15:40:38【人工智能】1人已围观

简介代码中经常会有变量是否为None的判断,有三种主要的写法:第一种是 if x is None ; 第二种是 if not x: ; 第三种是 if not x is Non

 代码中经常会有变量是判断否为None的判断,有三种主要的变量写法:

第一种是 if x is None ; 第二种是 if not x: ; 第三种是 if not x is None (这句这样理解更清晰 if not (x is None) ) 。

如果你觉得这样写没啥区别,否N法那么你可就要小心了,种写这里面有一个坑。判断先来看一下代码:

>>> x = 1 >>> not x False >>> x = [1] >>> not x False >>> x = 0 >>> not x True >>> x = [0]      >>> not x False 复制代码 

 在python中 None,变量 False, 空字符串"", 0, 空列表[], 空字典{ }, 空元组()都相当于False ,即:

not None == not False == not  == not 0 == not [] == not { } == not () 复制代码 

 因此在使用列表的否N法时候,如果你想区分 x==[] 和 x==None 两种情况的站群服务器种写话, 此时 if not x:将会出现问题:

>>> x = [] >>> y = None >>>  >>> x is None False >>> y is None True >>>  >>>  >>> not x True >>> not y True >>>  >>>  >>> not x is None >>> True >>> not y is None False >>> 复制代码 

 也许你是想判断x是否为None,但是判断却把 x==[] 的情况也判断进来了,此种情况下将无法区分。变量

对于习惯于使用if not x这种写法的否N法pythoner,必须清楚x等于None,种写 False, 空字符串"", 0, 空列表[], 空字典{ }, 空元组()时对你的判断没有影响才行。

而对于 if x is 判断not None 和 if not x is None 写法,很明显前者更清晰,变量而后者有可能使读者误解为 if (not x) is 否N法None ,云服务器因此推荐前者,同时这也是谷歌推荐的风格

结论:

if x is not None 是最好的写法,清晰,不会出现错误,以后坚持使用这种写法。

使用 if not x 这种写法的前提是:必须清楚x等于None, False, 空字符串"", 0, 空列表[], 空字典{ }, 空元组()时对你的判断没有影响才行。

云服务器提供商

很赞哦!(6377)