Что можно делать с помощью функции 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() всегда возвращает десятичное целое число. Если преобразовать первый аргумент в десятичное число не удается, то генерируется ошибка.