Python中`if not x:` 和`if x is None:`区别

今天在编程的时候,判断List是否为空,我用了一个if list is None: 来判断,发现List为空的时候,依然执行不了:后面的语句。然后修改为if not x:就可以了,我们来探究一下,这两者的区别。

先看一段例子:

>>> x = []
>>> y = None

>>> x is None
False
>>> y is None
True

>>> not x
True
>>> not y
True
>>>

我想判断x是否为None,但是却把x==[]的情况也判断进来了,因此if x is None:无法区分两种情况。

在Python中 None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于False,因此if not x:可以适用。

python中的not具体表示是什么,举个例子说一下:

在python中not是逻辑判断词,用于布尔型True和False,not True为False,not False为True,以下是几个常用的not的用法:

(1) not与逻辑判断句if连用,代表not后面的表达式为False的时候,执行冒号后面的语句。比如:

a = False
if not a:   # (这里因为a是False,所以not a就是True)
    print "hello"

这里就能够输出结果hello

(2) 判断元素是否在列表或者字典中,if a not in b,a是元素,b是列表或字典,这句话的意思是如果a不在列表b中,那么就执行冒号后面的语句,比如:

a = 5
b = [1, 2, 3]
if a not in b:
    print "hello"

这里也能够输出结果hello

总结:

not x意思相当于:

if x is false:
    then True
else:
    False

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章