我想知道如果蟒具有任何功能,諸如PHP空函數(http://php.net/manual/en/function.empty.php),其檢查是否變量爲空用以下標準如何檢查python中的變量是否爲空?
"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
我想知道如果蟒具有任何功能,諸如PHP空函數(http://php.net/manual/en/function.empty.php),其檢查是否變量爲空用以下標準如何檢查python中的變量是否爲空?
"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
是,bool
。它不完全一樣 - '0'
是True
,但是None
,False
,[]
,0
,0.0
和""
都是False
。
bool
當你像一個if
或while
語句,條件表達式,或者用布爾運算符條件評估對象隱式地使用。
如果你想處理包含數字作爲PHP做,你可以做類似的字符串:
def empty(value):
try:
value = float(value)
except ValueError:
pass
return bool(value)
見第5.1節:
http://docs.python.org/library/stdtypes.html
任何對象都可以用於真值進行測試,用於在使用中,如果一個或while條件或如下的布爾運算的操作數。下面的值被認爲是假:
None
False
任何數值類型的零,例如,0
,0L
,0.0
,0j
。
任何空序列,例如''
,()
,[]
。
任何空映射,例如,{}
。
用戶定義類的實例,如果該類定義了__nonzero__()
或__len__()
方法,則該方法返回整數零或布爾值False
。 [1]
所有其他值都被認爲是真的 - 因此許多類型的對象總是如此。
操作和內置功能有一個布爾結果總是返回0
或False
假,1
或True
真正的,除非另有說明。 (重要的例外:布爾運算or
和and
總是返回它們的一個操作數。)
參見本以前的答案,建議not
關鍵字
How to check if a list is empty in Python?
它概括不僅僅是列表:
>>> a = ""
>>> not a
True
>>> a = []
>>> not a
True
>>> a = 0
>>> not a
True
>>> a = 0.0
>>> not a
True
>>> a = numpy.array([])
>>> not a
True
值得注意的是,它不會用作字符串「0」,因爲字符串確實包含某些內容 - 包含「0」的字符。對於你必須把它轉換爲int:
>>> a = "0"
>>> not a
False
>>> a = '0'
>>> not int(a)
True
'not'不是一個命令,而是一個關鍵字。它也不是一個函數,所以你不需要(也不應該使用)括號。 「不」也隱式轉換爲布爾然後反轉;你並不總是想反轉只是爲了得到一個布爾值。 – agf
謝謝@agf。在帖子中更正了它。 – kitchenette
只需使用not
:
if not your_variable:
print("your_variable is empty")
,併爲您的0 as string
使用:
if your_variable == "0":
print("your_variable is 0 (string)")
將它們組合起來:
if not your_variable or your_variable == "0":
print("your_variable is empty")
Python是關於簡單性,所以這個答案:)
你爲什麼問? –