How does \v differ from \x0b or \x0c?

Each Answer to this Q is separated by one/two green lines.

Typing string.whitespace gives you a string containing all whitespace characters defined by Python’s string module:

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

Both \x0b and \x0c seem to give a vertical tab.

>>> print 'first\x0bsecond'
first
     second

\v gives the same effect. How are these three different? Why does the string module use \x0b or \x0c over the simpler \v?

\v is \x0b:

>>> '\v'
'\x0b'

but the string literal representation in Python is using the \x0b notation instead.

The Python string literal representation only ever uses \n, \r and \t, everything else that is not a printable ASCII character is represented using the \xhh notation instead.

\x0c is a form feed; it forces a printer to move to the next sheet of paper. You can also express it as \f in Python:

>>> '\f'
'\x0c'

In terminals the effects of \v and \f are often the same.


The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .