diff --git a/Doc/glossary.rst b/Doc/glossary.rst
index 0b26e18efd7f1b..cb407724029b22 100644
--- a/Doc/glossary.rst
+++ b/Doc/glossary.rst
@@ -1443,6 +1443,32 @@ Glossary
A computer defined entirely in software. Python's virtual machine
executes the :term:`bytecode` emitted by the bytecode compiler.
+ whitespace
+ Characters that represent horizontal or vertical space.
+ In an ASCII context, Python recognizes these characters as whitespace:
+
+ +-----------+-----------------+
+ | ``' '`` | space |
+ +-----------+-----------------+
+ | ``'\t'`` | tab |
+ +-----------+-----------------+
+ | ``'\n'`` | newline |
+ +-----------+-----------------+
+ | ``'\v'`` | vertical tab |
+ +-----------+-----------------+
+ | ``'\f'`` | form feed |
+ +-----------+-----------------+
+ | ``'\r'`` | carriage return |
+ +-----------+-----------------+
+
+ In a Unicode context, whitespace characters are the
+ characters defined in the `Unicode Character Database
+ `_ as "Other" or "Separator"
+ and those with bidirectional property being one of "WS," "B," or "S."
+
+ For example, this is used to :meth:`~str.split` or :meth:`~str.strip`
+ strings.
+
Zen of Python
Listing of Python design principles and philosophies that are helpful in
understanding and using the language. The listing can be found by typing
diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst
index 48d179c270378c..c5a57701715e25 100644
--- a/Doc/library/stdtypes.rst
+++ b/Doc/library/stdtypes.rst
@@ -2092,8 +2092,9 @@ expression support in the :mod:`re` module).
Return a copy of the string with leading characters removed. The *chars*
argument is a string specifying the set of characters to be removed. If omitted
- or ``None``, the *chars* argument defaults to removing whitespace. The *chars*
- argument is not a prefix; rather, all combinations of its values are stripped::
+ or ``None``, the *chars* argument defaults to removing :term:`whitespace`.
+ The *chars* argument is not a prefix; rather, all combinations of its values
+ are stripped::
>>> ' spacious '.lstrip()
'spacious '
@@ -2211,8 +2212,9 @@ expression support in the :mod:`re` module).
Return a copy of the string with trailing characters removed. The *chars*
argument is a string specifying the set of characters to be removed. If omitted
- or ``None``, the *chars* argument defaults to removing whitespace. The *chars*
- argument is not a suffix; rather, all combinations of its values are stripped::
+ or ``None``, the *chars* argument defaults to removing :term:`whitespace`.
+ The *chars* argument is not a suffix; rather, all combinations of its values
+ are stripped::
>>> ' spacious '.rstrip()
' spacious'
@@ -2348,9 +2350,9 @@ expression support in the :mod:`re` module).
Return a copy of the string with the leading and trailing characters removed.
The *chars* argument is a string specifying the set of characters to be removed.
- If omitted or ``None``, the *chars* argument defaults to removing whitespace.
- The *chars* argument is not a prefix or suffix; rather, all combinations of its
- values are stripped::
+ If omitted or ``None``, the *chars* argument defaults to removing
+ :term:`whitespace`. The *chars* argument is not a prefix or suffix; rather,
+ all combinations of its values are stripped::
>>> ' spacious '.strip()
'spacious'
@@ -2735,7 +2737,7 @@ data and are closely related to string objects in a variety of other ways.
This :class:`bytes` class method returns a bytes object, decoding the
given string object. The string must contain two hexadecimal digits per
- byte, with ASCII whitespace being ignored.
+ byte, with :term:`ASCII whitespace ` being ignored.
>>> bytes.fromhex('2Ef0 F1f2 ')
b'.\xf0\xf1\xf2'
@@ -2824,7 +2826,7 @@ objects.
This :class:`bytearray` class method returns bytearray object, decoding
the given string object. The string must contain two hexadecimal digits
- per byte, with ASCII whitespace being ignored.
+ per byte, with :term:`ASCII whitespace ` being ignored.
>>> bytearray.fromhex('2Ef0 F1f2 ')
bytearray(b'.\xf0\xf1\xf2')
@@ -3243,8 +3245,8 @@ produce new objects.
*chars* argument is a binary sequence specifying the set of byte values to
be removed - the name refers to the fact this method is usually used with
ASCII characters. If omitted or ``None``, the *chars* argument defaults
- to removing ASCII whitespace. The *chars* argument is not a prefix;
- rather, all combinations of its values are stripped::
+ to removing :term:`ASCII whitespace `. The *chars* argument is
+ not a prefix; rather, all combinations of its values are stripped::
>>> b' spacious '.lstrip()
b'spacious '
@@ -3287,9 +3289,9 @@ produce new objects.
Split the binary sequence into subsequences of the same type, using *sep*
as the delimiter string. If *maxsplit* is given, at most *maxsplit* splits
are done, the *rightmost* ones. If *sep* is not specified or ``None``,
- any subsequence consisting solely of ASCII whitespace is a separator.
- Except for splitting from the right, :meth:`rsplit` behaves like
- :meth:`split` which is described in detail below.
+ any subsequence consisting solely of :term:`ASCII whitespace `
+ is a separator. Except for splitting from the right, :meth:`rsplit` behaves
+ like :meth:`split` which is described in detail below.
.. method:: bytes.rstrip([chars])
@@ -3299,8 +3301,8 @@ produce new objects.
*chars* argument is a binary sequence specifying the set of byte values to
be removed - the name refers to the fact this method is usually used with
ASCII characters. If omitted or ``None``, the *chars* argument defaults to
- removing ASCII whitespace. The *chars* argument is not a suffix; rather,
- all combinations of its values are stripped::
+ removing :term:`ASCII whitespace `. The *chars* argument is not
+ a suffix; rather, all combinations of its values are stripped::
>>> b' spacious '.rstrip()
b' spacious'
@@ -3352,7 +3354,8 @@ produce new objects.
[b'1', b'2', b'3<4']
If *sep* is not specified or is ``None``, a different splitting algorithm
- is applied: runs of consecutive ASCII whitespace are regarded as a single
+ is applied: runs of consecutive :term:`ASCII whitespace ` are
+ regarded as a single
separator, and the result will contain no empty strings at the start or
end if the sequence has leading or trailing whitespace. Consequently,
splitting an empty sequence or a sequence consisting solely of ASCII
@@ -3376,9 +3379,9 @@ produce new objects.
removed. The *chars* argument is a binary sequence specifying the set of
byte values to be removed - the name refers to the fact this method is
usually used with ASCII characters. If omitted or ``None``, the *chars*
- argument defaults to removing ASCII whitespace. The *chars* argument is
- not a prefix or suffix; rather, all combinations of its values are
- stripped::
+ argument defaults to removing :term:`ASCII whitespace `.
+ The *chars* argument is not a prefix or suffix; rather, all combinations of
+ its values are stripped::
>>> b' spacious '.strip()
b'spacious'
@@ -3519,10 +3522,9 @@ place, and instead produce new objects.
.. method:: bytes.isspace()
bytearray.isspace()
- Return ``True`` if all bytes in the sequence are ASCII whitespace and the
- sequence is not empty, ``False`` otherwise. ASCII whitespace characters are
- those byte values in the sequence ``b' \t\n\r\x0b\f'`` (space, tab, newline,
- carriage return, vertical tab, form feed).
+ Return ``True`` if all bytes in the sequence are
+ :term:`ASCII whitespace ` and the sequence is not empty,
+ ``False`` otherwise.
.. method:: bytes.istitle()