Commit 0656a562 authored by Ezio Melotti's avatar Ezio Melotti

#12204: document that str.upper().isupper() might be False and add a note about cased characters.

parent ee8d998e
...@@ -54,7 +54,7 @@ following values are considered false: ...@@ -54,7 +54,7 @@ following values are considered false:
* instances of user-defined classes, if the class defines a :meth:`__bool__` or * instances of user-defined classes, if the class defines a :meth:`__bool__` or
:meth:`__len__` method, when that method returns the integer zero or :meth:`__len__` method, when that method returns the integer zero or
:class:`bool` value ``False``. [#]_ :class:`bool` value ``False``. [1]_
.. index:: single: true .. index:: single: true
...@@ -261,7 +261,7 @@ Python fully supports mixed arithmetic: when a binary arithmetic operator has ...@@ -261,7 +261,7 @@ Python fully supports mixed arithmetic: when a binary arithmetic operator has
operands of different numeric types, the operand with the "narrower" type is operands of different numeric types, the operand with the "narrower" type is
widened to that of the other, where integer is narrower than floating point, widened to that of the other, where integer is narrower than floating point,
which is narrower than complex. Comparisons between numbers of mixed type use which is narrower than complex. Comparisons between numbers of mixed type use
the same rule. [#]_ The constructors :func:`int`, :func:`float`, and the same rule. [2]_ The constructors :func:`int`, :func:`float`, and
:func:`complex` can be used to produce numbers of a specific type. :func:`complex` can be used to produce numbers of a specific type.
All numeric types (except complex) support the following operations, sorted by All numeric types (except complex) support the following operations, sorted by
...@@ -852,7 +852,7 @@ them is inefficient. ...@@ -852,7 +852,7 @@ them is inefficient.
Most sequence types support the following operations. The ``in`` and ``not in`` Most sequence types support the following operations. The ``in`` and ``not in``
operations have the same priorities as the comparison operations. The ``+`` and operations have the same priorities as the comparison operations. The ``+`` and
``*`` operations have the same priority as the corresponding numeric operations. ``*`` operations have the same priority as the corresponding numeric operations.
[#]_ Additional methods are provided for :ref:`typesseq-mutable`. [3]_ Additional methods are provided for :ref:`typesseq-mutable`.
This table lists the sequence operations sorted in ascending priority This table lists the sequence operations sorted in ascending priority
(operations in the same box have the same priority). In the table, *s* and *t* (operations in the same box have the same priority). In the table, *s* and *t*
...@@ -1137,10 +1137,8 @@ functions based on regular expressions. ...@@ -1137,10 +1137,8 @@ functions based on regular expressions.
.. method:: str.islower() .. method:: str.islower()
Return true if all cased characters in the string are lowercase and there is at Return true if all cased characters [4]_ in the string are lowercase and
least one cased character, false otherwise. Cased characters are those with there is at least one cased character, false otherwise.
general category property being one of "Lu", "Ll", or "Lt" and lowercase characters
are those with general category property "Ll".
.. method:: str.isnumeric() .. method:: str.isnumeric()
...@@ -1180,10 +1178,8 @@ functions based on regular expressions. ...@@ -1180,10 +1178,8 @@ functions based on regular expressions.
.. method:: str.isupper() .. method:: str.isupper()
Return true if all cased characters in the string are uppercase and there is at Return true if all cased characters [4]_ in the string are uppercase and
least one cased character, false otherwise. Cased characters are those with there is at least one cased character, false otherwise.
general category property being one of "Lu", "Ll", or "Lt" and uppercase characters
are those with general category property "Lu".
.. method:: str.join(iterable) .. method:: str.join(iterable)
...@@ -1203,7 +1199,8 @@ functions based on regular expressions. ...@@ -1203,7 +1199,8 @@ functions based on regular expressions.
.. method:: str.lower() .. method:: str.lower()
Return a copy of the string converted to lowercase. Return a copy of the string with all the cased characters [4]_ converted to
lowercase.
.. method:: str.lstrip([chars]) .. method:: str.lstrip([chars])
...@@ -1404,7 +1401,10 @@ functions based on regular expressions. ...@@ -1404,7 +1401,10 @@ functions based on regular expressions.
.. method:: str.upper() .. method:: str.upper()
Return a copy of the string converted to uppercase. Return a copy of the string with all the cased characters [4]_ converted to
uppercase. Note that ``str.upper().isupper()`` might be ``False`` if ``s``
contains uncased characters or if the Unicode category of the resulting
character(s) is not "Lu" (Letter, uppercase), but e.g. "Lt" (Letter, titlecase).
.. method:: str.zfill(width) .. method:: str.zfill(width)
...@@ -1444,7 +1444,7 @@ specifications in *format* are replaced with zero or more elements of *values*. ...@@ -1444,7 +1444,7 @@ specifications in *format* are replaced with zero or more elements of *values*.
The effect is similar to the using :c:func:`sprintf` in the C language. The effect is similar to the using :c:func:`sprintf` in the C language.
If *format* requires a single argument, *values* may be a single non-tuple If *format* requires a single argument, *values* may be a single non-tuple
object. [#]_ Otherwise, *values* must be a tuple with exactly the number of object. [5]_ Otherwise, *values* must be a tuple with exactly the number of
items specified by the format string, or a single mapping object (for example, a items specified by the format string, or a single mapping object (for example, a
dictionary). dictionary).
...@@ -2808,13 +2808,16 @@ The following attributes are only supported by :term:`new-style class`\ es. ...@@ -2808,13 +2808,16 @@ The following attributes are only supported by :term:`new-style class`\ es.
.. rubric:: Footnotes .. rubric:: Footnotes
.. [#] Additional information on these special methods may be found in the Python .. [1] Additional information on these special methods may be found in the Python
Reference Manual (:ref:`customization`). Reference Manual (:ref:`customization`).
.. [#] As a consequence, the list ``[1, 2]`` is considered equal to ``[1.0, 2.0]``, and .. [2] As a consequence, the list ``[1, 2]`` is considered equal to ``[1.0, 2.0]``, and
similarly for tuples. similarly for tuples.
.. [#] They must have since the parser can't tell the type of the operands. .. [3] They must have since the parser can't tell the type of the operands.
.. [#] To format only a tuple you should therefore provide a singleton tuple whose only .. [4] Cased characters are those with general category property being one of
"Lu" (Letter, uppercase), "Ll" (Letter, lowercase), or "Lt" (Letter, titlecase).
.. [5] To format only a tuple you should therefore provide a singleton tuple whose only
element is the tuple to be formatted. element is the tuple to be formatted.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment