Функции int()
В языке программирования Python встроенная функция int() возвращает целое число в десятичной системе счисления (класс int).
Если вызвать функцию int() без аргументов, она вернет 0.
>>> int() 0
Чаще всего функции int() передают только один аргумент, который может быть либо строкой, либо числом. Строки должны быть символьными представлениями целого числа, иначе будет сгенерирована ошибка ValueError.
>>> int('4') 4 >>> int('3a') Traceback (most recent call last): File "<pyshell#29>", line 1, in <module> int('3a') ValueError: invalid literal for int() with base 10: '3a'
Если передать функции целое число, то она вернет его же. Если передать вещественное число, то оно будет округлено до целого в сторону нуля (т. е. дробная часть будет отброшена).
>>> int(87) 87 >>> int(-103) -103 >>> int(234.879) 234 >>> int(-0.3) 0 >>> int(-0.9) 0
Попытка преобразовать строку, содержащую вещественное число, в целое число с помощью функции int() вызывает ошибку.
>>> int('101.1') Traceback (most recent call last): File "<pyshell#37>", line 1, in <module> int('101.1') ValueError: invalid literal for int() with base 10: '101.1'
Отсюда следует, что если требуется преобразовать дробное число в строковом представлении в целое число, сначала надо использовать функцию float(), а затем int().
>>> a = '15.76' >>> a = float(a) >>> a 15.76 >>> a = int(a) >>> a 15
В случае, когда указывается второй аргумент для функции int(), первый всегда должен быть строкой. С помощью второго аргумента функции int() сообщается, в какой системе счисления находится число, указанное в строке первого аргумента. Функция int() возвращает его значение в десятичной системе счисления.
>>> int('12',8) 10 >>> int('13h',20) 477 >>> int('111001',2) 57
Для двоичной, восьмеричной и шестнадцатеричной систем счисления можно использовать префиксы. Если такое представление числа заключается в кавычки, то второй аргумент обязателен.
>>> int(0b11) 3 >>> int('0b11') Traceback (most recent call last): File "<pyshell#48>", line 1, in <module> int('0b11') ValueError: invalid literal for int() with base 10: '0b11' >>> int('0b11',2) 3 >>> int(0o10) 8 >>> int(0x15) 21 >>> int(0xA5) 165
Итак, функция int() всегда возвращает десятичное целое число. Если преобразовать первый аргумент в десятичное число не удается, то генерируется ошибка.