今天在编程的时候,判断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

本文探讨了在Python编程中,`if not x:` 和 `if x is None:` 两种判断语句的区别。当试图判断List是否为空时,`if not x:` 会将None和False等值误判。通过示例解释了`not`关键字在逻辑判断中的作用,以及如何正确使用`if x is None:` 以精确地检查变量是否为None。

被折叠的 条评论
为什么被折叠?



