三种主要的写法有:python
第一种:if X is None;spa
第二种:if not X;code
当X为None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()这些时,not X为真,即没法分辨出他们之间的不一样。对象
第三种:if not X is None;字符串
在Python中,None、空列表[]、空字典{}、空元组()、0等一系列表明空和无的对象会被转换成False。除此以外的其它对象都会被转化成True。get
在命令if not 1中,1便会转换为bool类型的True。not是逻辑运算符非,not 1则恒为False。所以if语句if not 1之下的语句,永远不会执行。class
========================================================================================object
对比:foo is None 和 foo == Noneword
示例:co
>>> class Foo(object): def __eq__(self, other): return True >>> f = Foo() >>> f == None True >>> f is None False
在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