Что такое "\ 00" в Python? - PullRequest
5 голосов
/ 27 июля 2011

Что означает "\ 00" в Python? Чтобы узнать больше об этом, я попробовал следующее:

  • Когда я назначаю d="\00" и вызываю print d, на экране ничего не отображается.
  • Я также пытался присвоить d строке с дополнительным интервалом между и в конце и затем вызвать d.replace("\00", ""), но никакого результата не было видно.

Что делает d.replace("\00","")? Будет ли он просто искать эту конкретную строку "\ 00" и заменять ее пустой строкой?

Ответы [ 2 ]

17 голосов
/ 27 июля 2011

В Python 2, когда число начинается с начального нуля, это означает, что оно восьмеричное (основание 8). В Python 3 восьмеричные литералы начинаются с 0o. 00 конкретно равно 0.

Ведущий \ в \00 - это способ указания значения байта, числа от 0 до 255. Обычно он используется для представления символа, которого нет на вашей клавиатуре, или иначе нельзя легко представить в строке. Некоторые специальные символы также имеют нечисловые «escape-коды», например \n для новой строки.

Нулевой байт также известен как нулевой байт или нулевой байт. При печати ничего не отображается - это ноль.

См. http://www.ascii.cl/ для кодов символов ASCII.

Да, replace будет по-прежнему работать с ним, просто он не имеет значения в качестве отображаемого символа.

Иногда используется для других целей, см. http://en.wikipedia.org/wiki/Null_character.

10 голосов
/ 27 июля 2011

Обратная косая черта, за которой следует число, используется для представления символа с этим восьмеричным значением.Таким образом, ваш \00 представляет ASCII NUL .

...