int(x) int(x, base=10)
x
- число или строка,base
- числовой формат, по умолчанию 10.Класс int()
возвращает целочисленный объект, созданный из числа или строки x
, или возвращает 0
, если аргументы не заданы.
x
определяет __int__()
, то int(x)
возвращает x.__int__()
. x
определяет __index__()
, то он возвращает x.__index__()
. x
определяет __trunc__()
, то он возвращает x.__trunc__()
. Если аргумент не число или если задан числовой формат base
, то аргумент должен быть строкой, байтами, или экземпляром bytearray
, представляющим литерал целого числа по основанию base
. Литералу может предшествовать +
или -
без пробела между ними и может окружать пробелами.
Литерал с основанием n
состоит из цифр от 0 до n-1, где числа от a
до z
(или от A
до Z
) имеют значения от 10
до 35
.
По умолчанию base=10
. Допустимые значения 0 и от 2 до 36. Основания 2, 8, и 16 могут иметь необязательные префиксы 0b
/0B
, 0o
/0O
или 0x
/0X
соответственно. Основание base=0
означает интерпретацию x
точно, как литерал кода, таким образом int('010', 0)
не является правильным, в то время как int('010')
верно, а также верно int('010', 8)
.
*Изменено в Python 3.4: если base
не является экземпляром int
и у базового объекта есть метод base.__index__
, то он вызывается для получения целого числа для base
. Предыдущие версии использовались base.__int__
вместо base.__index__
.
*Изменено в Python 3.6: допускается группировка цифр с подчеркиванием, как в литералах кода.
*Изменено в Python 3.7: x
теперь является позиционным параметром.
*Изменено в Python 3.8: Откат к __index__()
если __int__()
не определен.
Изменено в Python 3.11: строковые входные данные и представления строк могут быть ограничены, чтобы избежать атак типа "отказ в обслуживании". Когда превышен предел при преобразовании строки x
в целое число или когда преобразование целого числа в строку превысит предел => поднимается исключение ValueError
. Смотрите "Ограничение длины преобразования целочисленной строки".
int
.a = int(3.5) b = int(12.9) c = int('3') d = int(' -3 ') f = int('0b11', 2) y = int('0o12', base=8) z = int('0xa', base=16) print(a, b, c, d, f, y, z) # Вывод 3, 12, 3, -3, 10, 10, 10