2014-10-03 5 views
21

Typing string.whitespace gibt Ihnen eine Zeichenfolge alle Leerzeichen enthält, die durch die Python string Modul definiert:Wie unterscheidet sich v von x0b oder x0c?

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

Beide \x0b und \x0c scheinen eine vertikale Lasche zu geben.

>>> print 'first\x0bsecond' 
first 
    second 

\v gibt den gleichen Effekt. Wie sind diese drei verschiedenen? Warum verwendet das string Modul \x0b oder \x0c über den einfacheren \v?

Antwort

33

\vist\x0b:

>>> '\v' 
'\x0b' 

aber die Stringliteral Darstellung in Python wird mit der \x0b Notation statt.

Die Python Stringliteral Darstellung verwendet nur jemals \n, \r und \t, alles andere, was nicht druckbaren ASCII-Zeichen statt mit der \xhh Notation dargestellt.

\x0c ist ein form feed; Es zwingt einen Drucker, zum nächsten Blatt Papier zu gehen. Sie können sie auch als \f in Python ausdrücken:

>>> '\f' 
'\x0c' 

In Terminals die Auswirkungen von \v und \f sind oft die gleichen.

+0

funktioniert nicht für mich (Python 2.7.11, OSx). Jede dieser Variationen druckt auch eine neue Zeile aus. Whitespace ist \ x20 – magicrebirth

+0

@magicrebrandh: Entschuldigung, was nicht funktioniert? Die Variationen, die ich demonstriere, sind * String-Literale *, die vom interaktiven Interpreter wiedergegeben werden. Und Python wird * niemals * \ x20' für ein Leerzeichen zurückgeben. –

+0

Schön. Ich lief über '\ x0c' beim Konvertieren von OCR-PDFs in Text. Die leeren Seiten der PDFs wurden mir als '\ x0c' zurückgegeben, was jetzt sehr sinnvoll ist. –

Verwandte Themen