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

2020-06-07 02:17发布

问题:

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?

回答1:

\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.