Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit edfbf56

Browse filesBrowse files
authored
pythongh-100428: Make int documentation more accurate (python#100436)
- Remove first link to lexical definition of integer literal, since it doesn't apply (differs in handling of leading zeros, base needs to be explicitly specified, unicode digits are allowed) - Better describe handling of leading zeros, unicode digits, underscores - Base 0 does not work exactly as like a code literal, since it allows Unicode digits. Link code literal to lexical definition of integer literal.
1 parent b7a68ab commit edfbf56
Copy full SHA for edfbf56

File tree

1 file changed

+15
-11
lines changed
Filter options

1 file changed

+15
-11
lines changed

‎Doc/library/functions.rst

Copy file name to clipboardExpand all lines: Doc/library/functions.rst
+15-11Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -893,17 +893,21 @@ are always available. They are listed here in alphabetical order.
893893
For floating point numbers, this truncates towards zero.
894894

895895
If *x* is not a number or if *base* is given, then *x* must be a string,
896-
:class:`bytes`, or :class:`bytearray` instance representing an :ref:`integer
897-
literal <integers>` in radix *base*. Optionally, the literal can be
898-
preceded by ``+`` or ``-`` (with no space in between) and surrounded by
899-
whitespace. A base-n literal consists of the digits 0 to n-1, with ``a``
900-
to ``z`` (or ``A`` to ``Z``) having
901-
values 10 to 35. The default *base* is 10. The allowed values are 0 and 2--36.
902-
Base-2, -8, and -16 literals can be optionally prefixed with ``0b``/``0B``,
903-
``0o``/``0O``, or ``0x``/``0X``, as with integer literals in code. Base 0
904-
means to interpret exactly as a code literal, so that the actual base is 2,
905-
8, 10, or 16, and so that ``int('010', 0)`` is not legal, while
906-
``int('010')`` is, as well as ``int('010', 8)``.
896+
:class:`bytes`, or :class:`bytearray` instance representing an integer
897+
in radix *base*. Optionally, the string can be preceded by ``+`` or ``-``
898+
(with no space in between), have leading zeros, be surrounded by whitespace,
899+
and have single underscores interspersed between digits.
900+
901+
A base-n integer string contains digits, each representing a value from 0 to
902+
n-1. The values 0--9 can be represented by any Unicode decimal digit. The
903+
values 10--35 can be represented by ``a`` to ``z`` (or ``A`` to ``Z``). The
904+
default *base* is 10. The allowed bases are 0 and 2--36. Base-2, -8, and -16
905+
strings can be optionally prefixed with ``0b``/``0B``, ``0o``/``0O``, or
906+
``0x``/``0X``, as with integer literals in code. For base 0, the string is
907+
interpreted in a similar way to an :ref:`integer literal in code <integers>`,
908+
in that the actual base is 2, 8, 10, or 16 as determined by the prefix. Base
909+
0 also disallows leading zeros: ``int('010', 0)`` is not legal, while
910+
``int('010')`` and ``int('010', 8)`` are.
907911

908912
The integer type is described in :ref:`typesnumeric`.
909913

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.