在python中not是邏輯判斷詞,用於布林型true和false,not true為false,not false為true,以下是幾個常用的not的用法:
比如:a = false
if not a:
(這裡因為a是false,所以not a就是true)
print "hello"
這裡就能夠輸出結果hello
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第一種是`if x is none`;false, then true, else false
第二種是 `if not x:`;
第三種是`if not x is none`(這句這樣理解更清晰`if not (x is none)`) 。
先來看一下**:
>>> x = 1
>>> not x
false
>>> x = [1]
>>> not x
false
>>> x = 0
>>> not x
true
>>> x = [0] # you don't want to fall in this one.
>>> not x
false
在python中none, false,0,空字串"",空列表, 空字典{}, 空元組()都相當於false,即:>>> x =not none == not false == not 0 == not '' == not == not {} == not ()
>>> 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這種寫法的pythoner,必須清楚x等於none, false, 空字串"", 0, 空列表, 空字典{}, 空元組()時對你的判斷沒有影響才行。
而對於`if x is not none`和`if not x is none`寫法,很明顯前者更清晰,而後者有可能使讀者誤解為`if (not x) is none`,因此推薦前者,同時這也是谷歌推薦的風格
結論:參考:① `if x is not none`是清晰的寫法,不會出現錯誤,可以堅持使用這種寫法。
使用if not x這種寫法的前提是:必須清楚x等於none, false, 空字串"", 0, 空列表, 空字典{}, 空元組()時對你的判斷沒有影響才行。
② 不過在 「判斷列表是否為空」之類的問題時,if not x 寫法的執行效率會比 if x == 略高。(leetcode中同一題使用前者840ms,後者1144ms)
python中的and和or用法
在python中and和or返回的值並不是true和false這麼簡單。雖然他們看上去和c 中的 和 有些相似。在了解and和or之前,我們先要了解python中的true和false。在python裡面,0 none為假,其它任何東西都為真。ok,在此前提下。看這樣乙個例子 我們大致可以總結出這樣...
python中 and和or用法
在python 中,and 和 or 執行布林邏輯演算,如你所期待的一樣。但是它們並不返回布林值,而是返回它們實際進行比較的值之一。類似c 裡面的 和 的短路求值 在布林環境中,0 none為假 其它任何東西都為真。但是可以在類中定義特定的方法使得類例項的演算值為假。and例項 python vie...
Python中WordCloud各引數的含義
用python畫詞云時,需要用到wordcloud,下面羅列了它各個引數的含義 font path string 字型路徑,需要展現什麼字型就把該字型路徑 字尾名寫上,如 font path 黑體.ttf width int default 400 輸出的畫布寬度,預設為400畫素 height i...