2011-07-27 24 views
5

Co oznacza "\ 00" w Pythonie? Aby dowiedzieć się więcej na ten temat, próbowałem następujące:Co to jest " 00" w języku Python?

  • Kiedy przypisać d="\00" i nazywają print d, nic nie wyświetla się na ekranie.
  • Próbowałem również przypisać d do łańcucha z dodatkowymi odstępami między i na końcu, a następnie o nazwie d.replace("\00", ""), ale nie było widać żadnego wyniku.

Co robi d.replace("\00","")? Czy po prostu będzie szukał tego konkretnego ciągu znaków i zastąpi go pustym łańcuchem?

Odpowiedz

16

W Pythonie 2, gdy liczba zaczyna się od początkowego zera, oznacza to, że jest ósemkowa (podstawa 8). W Pythonie 3 ósemkowe literały zaczynają się od 0o. 00 specjalnie 0.

Wiodącym \ w \00 jest sposobem na określenie wartości bajtów liczbę pomiędzy 0-255. Jest zwykle używany do reprezentowania postaci, która nie znajduje się na twojej klawiaturze lub w inny sposób nie może być łatwo przedstawiona w postaci ciągu znaków. Niektóre znaki specjalne mają również nieliczbowe "kody escape", takie jak \n dla nowej linii.

Bajt zerowy jest również znany jako bajt zerowy lub bajt zerowy. Nie wyświetla niczego po wydrukowaniu - jest pusty.

Zobacz http://www.ascii.cl/ dla kodów znaków ASCII.

Tak, replace nadal będzie z nim pracować, nie ma to znaczenia jako znak wyświetlany.

Czasami używany do innych celów, patrz http://en.wikipedia.org/wiki/Null_character.

+0

Co więc zrobi "wymienić"? Czy po prostu traktuje "\ 00" jako zwykły ciąg; należy zastąpić przez "". –

+1

Tak, zastąpi on bajt zerowy dowolnie wybranym łańcuchem, tak jakby zastąpił "a" lub "" (spacja) lub "\ t" (zakładka). – agf

+2

@agf zwróć uwagę, że '\ 0' jest w rzeczywistości podstawą 8, a nie podstawą 10. Nie robi żadnej różnicy dla wartości null, ale gdy tylko zaczniesz używać go dla dowolnej postaci powyżej 7, zrobi to dużą różnicę. – Duncan

9

Ukośnik odwrotny z następującym po nim numerem służy do reprezentowania znaku o tej wartości ósemkowej. Więc twój \00 reprezentuje ASCII NUL.

+0

Nie ma czegoś takiego jak "ASCII NULL". To jest "NUL". 'NULL' to SQL równoważny" Brakowi "Pythona. –