欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python的None和C++的NULL用法解讀

 更新時(shí)間:2023年05月06日 10:40:02   作者:Jellyfish733  
這篇文章主要介紹了Python的None和C++的NULL用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Python的None和C++的NULL

Python的None

該值表示一個(gè)空對(duì)象,是Python的一個(gè)特殊的值。None不能理解為0,因?yàn)?是有意義的。對(duì)值為None的對(duì)象進(jìn)行邏輯判斷,會(huì)返回False。

可以將None賦值給任何變量,也可以將任何變量賦值給一個(gè)None值的對(duì)象。

 而在Python中,NULL表示空字符,即""。(直接使用NULL會(huì)被提示無定義)

C++的NULL

NULL是一個(gè)標(biāo)準(zhǔn)規(guī)定的宏定義,用來表示空指針常量,使用NULL必須包含相應(yīng)的標(biāo)準(zhǔn)頭文件【其定義在stddef.h文件中,作為最基本的語言依賴宏存在。但是幾乎任意的C++標(biāo)準(zhǔn)頭文件都會(huì)把這個(gè)宏引入?!?/p>

經(jīng)驗(yàn)證NULL==0。

None、Null與空字符‘‘什么區(qū)別

None

表示空無一物,啥也沒有存儲(chǔ)。

編程語言里采用None

比如在python中None不是一個(gè)保留關(guān)鍵字,只是NoneType對(duì)象的一個(gè)實(shí)例。

空就是空,它不是整型,不是浮點(diǎn)型,也不是字符串,就是一個(gè)NoneType。所以在使用len(None)時(shí)候會(huì)報(bào)錯(cuò),因?yàn)镹oneType沒有字符串才有的方法。

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

表示空無一物,啥也沒有存儲(chǔ)。

數(shù)據(jù)庫中才使用Null

在數(shù)據(jù)庫查詢時(shí)Null就等同于python中的None,表示什么也沒有,是個(gè)空值,不是空字符串。常見的就是:

--篩選name字段不為空的記錄
select *?
from table_A
where name is not Null

Python中沒有Null這個(gè)東西

在直接使用Null時(shí),會(huì)報(bào)錯(cuò)提示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

空字符’’

有存儲(chǔ)個(gè)東西,是空字符串,空字符串有哪些特征呢?

  • 長(zhǎng)度為0
  • 類型為string

以下是在python中驗(yàn)證了空字符串的特點(diǎn)。

In [66]: len('') ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Out[66]: 0
In [67]: type('') ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
Out[67]: str

值得注意的是:

在數(shù)據(jù)庫表中如果存在空字符串,進(jìn)行表關(guān)聯(lián)操作時(shí)可能會(huì)出現(xiàn)空值放大的效果,導(dǎo)致表關(guān)聯(lián)后出現(xiàn)了記錄數(shù)超多。所以在數(shù)據(jù)庫表或dataframe關(guān)聯(lián)時(shí),需要特別處理空字符串這種情形。

總結(jié)

現(xiàn)在是不是頭腦清醒了許多~

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論