在很多程式語言中,都有null這個值,作為值賦予給變數。
python中也有,但是是用none。使用none的原因是:
1)null這個單詞不夠友好,對初學者來說不好理解。
2)物件導向的語言都傾向用駝峰命名法,none符合駝峰命名法。
在python中,none是乙個物件:
>>> print(type(none))
什麼時候可以用python的none:
1)用於判斷乙個函式或者方法是否生效,例如:
# pseudocode
import mydatabase
database_connection = none
# try to connect database
try:
database_connection = mydatabase(host, port, user_name, user_password)
except exception as e:
pass
if database_connection is none:
print("fail to connect database")
else:
print("database connected")
2)檢查乙個變數是否為none
這點上要特別注意的是:python中,一般我們用於判斷乙個變數是否為none有兩種方式,一種是is,一種是==。平時可能這兩種方式都可以得到正確的結果,但是不建議用== 方式。因為 == 是乙個類中的內建函式__eq__,而定義類的時候,是允許重寫內建函式的,所以可能因為重寫了__eq__,導致使用 == 方式來判斷出現錯誤。例如:
# pseudocode
class myclass:
def __eq__(self, my_object):
# no matter what, we return true, which will cause some errors
return true
my_class = myclass()
if my_class is none:
print("my_class is none, using the is keyword")
else:
print("my_class is not none, using the is keyword")
if my_class == none:
print("my_class is none, using the == syntax")
else:
print("my_class is not none, using the == syntax")
以上的偽**,因為重寫了__eq__方法,讓它不管在任何時候,都返回true,所以my_class本來不是none的,卻被認為是none。 python去除列表中的None值和nan值
首先去除none值 list a none,1 1,3 while none in list a list a.remove none 這樣就可以了。但是這個nan很無解,因為他是在顯示出來才表示的nan,如果只是用math或者numpy的nan是沒辦法去除的。沒法去除的 import numpy ...
深入理解python中的None
在python中判斷乙個物件是否為空時,我曾經這樣寫 list iflist is not none print list is s list else print list is null 列印結果為 is 從上面的例子可以看出list為空應該列印的是 list is null 但是實際的結果不是...
原創 關於python在輸出時出現none
比如我們首先定義乙個class 最後的輸出時print,而我們在後面呼叫時又使用了print 這個class 此時我們輸出的結果就會出現在結果後面跟著乙個none。正確的處理是,class的定義裡是return 呼叫時print 比如 leetcode的乙個程式two sum class solut...