2014-10-03 13 views
21

Wpisanie string.whitespace daje ciąg zawierający wszystkie białe znaki zdefiniowane przez moduł Pythona string:Czym v różni się od x0b lub x0c?

'\t\n\x0b\x0c\r ' 

Zarówno \x0b i \x0c wydają się dać zakładkę pionową.

>>> print 'first\x0bsecond' 
first 
    second 

\v daje ten sam efekt. Jak są te trzy różne? Dlaczego moduł string korzysta z prostszego ?

Odpowiedz

33

\vjest\x0b:

>>> '\v' 
'\x0b' 

ale ciąg dosłowne przedstawienie w Pythonie używa notacji \x0b zamiast.

Python ciąg dosłowne przedstawienie tylko kiedykolwiek używa \n, \r i \t, wszystko inne, co nie jest do druku ASCII znak reprezentowany jest za pomocą notacji \xhh zamiast.

\x0c to form feed; zmusza drukarkę do przejścia na następny arkusz papieru. Można również wyrazić jako \f w Pythonie:

>>> '\f' 
'\x0c' 

W terminalach skutki \v i \f są często takie same.

+0

nie działa dla mnie (Python 2.7.11, OSx). Każda z tych odmian wypisuje również nową linię. Whitespace jest \ x20 – magicrebirth

+0

@magicrebirth: przepraszam, co nie działa? Pokazane przeze mnie wariacje są * literałami ciągów *, powtórzonymi przez interaktywny interpreter. A Python * nigdy * nie będzie echo '\ x20' dla przestrzeni. –

+0

Nice. Podczas konwersji OCR'd pdfs na tekst natknąłem się na '\ x0c'. Puste strony plików pdf zostały mi zwrócone jako '\ x0c', co teraz ma sens. –

Powiązane problemy