2011-07-27 2555 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等价物。 –

相关问题