2011-07-27 6 views
5

¿Qué significa "\ 00" en Python? Para obtener más información sobre esto, he intentado siguiente:¿Qué es " 00" en Python?

  • Cuando le asigno d="\00" y llamo print d, no se muestra nada en la pantalla.
  • También intenté asignar d a una cadena con espacio adicional entre y al final y luego llamé al d.replace("\00", ""), pero no se observó ningún resultado.

¿Qué hace d.replace("\00","") hacer? ¿Simplemente buscará esta cadena en particular "\ 00" y la reemplazará con una cadena vacía?

Respuesta

16

En Python 2, cuando un número comienza con un cero inicial, significa que está en octal (base 8). En Python 3 literales octales comienzan con 0o en su lugar. 00 específicamente es 0.

El \ líder en \00 es una forma de especificar un valor de byte, un número entre 0-255. Normalmente se usa para representar un personaje que no está en su teclado, o que de otro modo no se puede representar fácilmente en una cadena. Algunos caracteres especiales también tienen "códigos de escape" no numéricos, como \n para una nueva línea.

El byte cero también se conoce como byte nulo o byte nulo. No muestra nada cuando se imprime, es nulo.

Consulte http://www.ascii.cl/ para ver los códigos de caracteres ASCII.

Sí, replace seguirá trabajando con él, simplemente no tiene ningún significado como un carácter de visualización.

A veces se utiliza para otros fines, consulte http://en.wikipedia.org/wiki/Null_character.

+0

Entonces, ¿qué hará 'replace' do? ¿Simplemente tratará "\ 00" como una cadena simple? ser reemplazado por "". –

+1

Sí, reemplazará el byte cero con cualquier cadena que especifique, igual que si reemplazó 'a' o '' (espacio) o '\ t' (pestaña). – agf

+2

@agf tenga en cuenta que '\ 0' es en realidad la base 8 no la base 10. No hay ninguna diferencia para los nulos, pero tan pronto como comience a usarlo para cualquier personaje de más de 7, hará una gran diferencia. – Duncan

9

La barra diagonal inversa seguida de un número se utiliza para representar el carácter con ese valor octal. Entonces su \00 representa ASCII NUL.

+0

No existe tal cosa como "ASCII NULL". Es 'NUL'. 'NULL' es el equivalente SQL de' None' de Python. –

Cuestiones relacionadas