Python的None和C++的NULL用法解讀
Python的None和C++的NULL
Python的None
該值表示一個空對象,是Python的一個特殊的值。None不能理解為0,因為0是有意義的。對值為None的對象進行邏輯判斷,會返回False。
可以將None賦值給任何變量,也可以將任何變量賦值給一個None值的對象。
而在Python中,NULL表示空字符,即""。(直接使用NULL會被提示無定義)
C++的NULL
NULL是一個標準規(guī)定的宏定義,用來表示空指針常量,使用NULL必須包含相應的標準頭文件【其定義在stddef.h文件中,作為最基本的語言依賴宏存在。但是幾乎任意的C++標準頭文件都會把這個宏引入?!?/p>
經(jīng)驗證NULL==0。
None、Null與空字符‘‘什么區(qū)別
None
表示空無一物,啥也沒有存儲。
編程語言里采用None
比如在python中None不是一個保留關鍵字,只是NoneType對象的一個實例。
空就是空,它不是整型,不是浮點型,也不是字符串,就是一個NoneType。所以在使用len(None)時候會報錯,因為NoneType沒有字符串才有的方法。
In [71]: type(None) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? Out[71]: NoneType In [72]: len(None) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? --------------------------------------------------------------------------- TypeError ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Traceback (most recent call last) <ipython-input-72-96b07938784c> in <module> ----> 1 len(None) TypeError: object of type 'NoneType' has no len()
數(shù)據(jù)庫查詢中用Null,表示的含義相同
Null
表示空無一物,啥也沒有存儲。
數(shù)據(jù)庫中才使用Null
在數(shù)據(jù)庫查詢時Null就等同于python中的None,表示什么也沒有,是個空值,不是空字符串。常見的就是:
--篩選name字段不為空的記錄 select *? from table_A where name is not Null
Python中沒有Null這個東西
在直接使用Null時,會報錯提示Null is not defined。
In [68]: type(Null)? --------------------------------------------------------------------------- NameError ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Traceback (most recent call last) <ipython-input-68-fe48179a953c> in <module> ----> 1 type(Null) NameError: name 'Null' is not defined In [69]: type('Null') ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? Out[69]: str In [70]: len('Null') ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Out[70]: 4
空字符’’
有存儲個東西,是空字符串,空字符串有哪些特征呢?
- 長度為0
- 類型為string
以下是在python中驗證了空字符串的特點。
In [66]: len('') ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Out[66]: 0 In [67]: type('') ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? Out[67]: str
值得注意的是:
在數(shù)據(jù)庫表中如果存在空字符串,進行表關聯(lián)操作時可能會出現(xiàn)空值放大的效果,導致表關聯(lián)后出現(xiàn)了記錄數(shù)超多。所以在數(shù)據(jù)庫表或dataframe關聯(lián)時,需要特別處理空字符串這種情形。
總結
現(xiàn)在是不是頭腦清醒了許多~
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
python之lambda表達式與sort函數(shù)中的key用法
這篇文章主要介紹了python之lambda表達式與sort函數(shù)中的key用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08pdf論文中python畫的圖Type 3 fonts字體不兼容的解決方案
這篇文章主要介紹了pdf論文中python畫的圖Type 3 fonts字體不兼容的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04Python Pytorch gpu 分析環(huán)境配置
Pytorch是目前最火的深度學習框架之一,目前也支持了pytorch的GPU加速,所以我就想著,在這兩個電腦上裝個Pytorch,這篇文章主要介紹了Python Pytorch(gpu)分析環(huán)境配置,需要的朋友可以參考下2023-04-04