三種主要的寫法有: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