2011-07-27 289 views
5

「\ 00」在Python中的含義是什麼?要了解更多關於這一點,我嘗試以下操作:什麼是Python中的「 00」?

  • 當我分配d="\00",並呼籲print d,沒有顯示在屏幕上。
  • 我也嘗試將d分配給一個字符串,並在結尾處加上一個空格,然後調用d.replace("\00", ""),但沒有任何結果是明顯的。

d.replace("\00","")是做什麼用的?它只會尋找這個特定的字符串「\ 00」並將其替換爲空字符串?

回答

16

在Python 2中,當數字以前導零開始時,表示它是八進制數(基數爲8)。在Python 3中,八進制文字以0o代替。 00具體爲0.

\00中的前導\是一種指定字節值的方式,一個介於0-255之間的數字。它通常用於表示不在鍵盤上的字符,否則不能用字符串表示。一些特殊字符也具有非數字「轉義碼」,如換行符\n

零字節也被稱爲nul字節或空字節。打印時不顯示任何內容 - 它爲空。

有關ASCII字符代碼,請參見http://www.ascii.cl/

是的,replace仍然可以使用它,它只是作爲一個顯示字符沒有意義。

它有時用於其他目的,請參閱http://en.wikipedia.org/wiki/Null_character

+0

那麼'replace'會做什麼?它會僅僅將「\ 00」視爲一個純字符串;被「」取代。 –

+1

是的,它會用您指定的任何字符串替換零字節,就像替換'a'或''(空格)或'\ t'(製表符)一樣。 – agf

+2

@agf注意'\ 0'實際上是基數8而不是基數10.它對空值沒有任何區別,但是一旦你開始將它用於超過7的任何字符,它將會產生很大的差異。 – Duncan

9

後面跟着一個數字的反斜槓用於表示具有該八進制值的字符。所以你的\00代表ASCII NUL

+0

沒有「ASCII NULL」這樣的東西。這是'NUL'。 'NULL'是Python的'None'的SQL等價物。 –

相關問題