2014-10-03 7 views
21

Digitando string.whitespace ti dà una stringa che contiene tutti i caratteri di spazi bianchi definiti dal modulo di Python string:In che modo v differisce da x0b o x0c?

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

Sia \x0b e \x0c sembrano dare una scheda verticale.

>>> print 'first\x0bsecond' 
first 
    second 

\v dà lo stesso effetto. Come sono questi tre diversi? Perché il modulo string utilizza \x0b o \x0c sul più semplice \v?

risposta

33

\vè\x0b:

>>> '\v' 
'\x0b' 

ma la rappresentazione letterale stringa in Python utilizza la notazione \x0b invece.

Il Python stringa di rappresentazione letterale sempre e solo utilizza \n, \r e \t, tutto il resto che non è un carattere ASCII stampabile è rappresentato usando la notazione \xhh invece.

\x0c è un form feed; costringe una stampante a passare al prossimo foglio di carta. Si può anche esprimere come \f in Python:

>>> '\f' 
'\x0c' 

Nei terminal gli effetti della \v e \f sono spesso gli stessi.

+0

non funziona per me (Python 2.7.11, OSx). Ognuna di queste variazioni stampa anche una nuova riga. Lo spazio bianco è \ x20 – magicrebirth

+0

@magicrebirth: scusa, cosa non funziona? Le varianti che mostro sono * stringhe letterali *, ripetute dall'interprete interattivo. E Python * non * echo '\ x20' per uno spazio. –

+0

Bello. Ho incontrato '\ x0c' quando ho convertito i pdf di OCR in testo. Le pagine vuote dei pdf mi sono state restituite come '\ x0c', che ora ha perfettamente senso. –