Int: примеры (PYTHON)
int(x, base): intОписание функции int в Python
Функция int() в Python выполняет преобразование переданного аргумента в целое число. Её применение актуально при необходимости получения целочисленного представления данных, поступающих в виде строк, чисел с плавающей точкой или объектов, поддерживающих соответствующий протокол.
Синтаксис функции: int(x=0, base=10). Первый аргумент x - объект для преобразования. Если он не указан, возвращается 0. Второй аргумент base - основание системы счисления для преобразования строки (от 2 до 36). По умолчанию равен 10. Для работы с base аргумент x должен быть строкой.
Возвращаемое значение - целое число типа int. Если передана строка с некорректными символами или пустая, возникает исключение ValueError.
Основные примеры использования
Преобразование чисел с плавающей точкой:
int(3.14)3
Преобразование строки в десятичной системе:
int("42")42
Преобразование строки из двоичной системы (base=2):
int("1010", 2)10
Преобразование строки из шестнадцатеричной системы (base=16):
int("FF", 16)255
Использование с отрицательными числами:
int("-15")
int(-7.8)-15 -7
Похожие функции в Python
float() - преобразует аргумент в число с плавающей точкой. Применяется, когда требуется сохранить дробную часть.
round() - округляет число до указанного количества знаков после запятой, возвращая float или int. Полезно для математического округления.
math.trunc() - отбрасывает дробную часть, аналогично int() для положительных чисел, но всегда округляет к нулю.
decimal.Decimal() - обеспечивает точные десятичные вычисления, используется в финансовых расчётах.
Аналоги функции в других языках
JavaScript: parseInt() - преобразует строку в целое число с указанием системы счисления.
parseInt("10", 2);2
PHP: intval() - возвращает целое значение переменной.
echo intval("42");42
Java: Integer.parseInt() - преобразует строку в примитив int.
int num = Integer.parseInt("100");C#: Convert.ToInt32() или int.Parse() - методы для конвертации.
int result = Convert.ToInt32("50");Golang: strconv.Atoi() - преобразует строку в int, возвращая ошибку при неудаче.
num, err := strconv.Atoi("256")Типичные ошибки при использовании
Передача строки с некорректными символами для указанной системы счисления:
int("12A", 10)ValueError: invalid literal for int() with base 10: '12A'
Использование основания системы счисления с числом, не являющимся строкой:
int(10, 2)TypeError: int() can't convert non-string with explicit base
Передача пустой строки:
int("")ValueError: invalid literal for int() with base 10: ''
Преобразование слишком большого числа с плавающей точкой:
int(1e1000)OverflowError: cannot convert float infinity to integer
Изменения в последних версиях Python
В Python 3.x функция int() потеряла синоним long, так как все целые числа теперь имеют неограниченную точность. В Python 3.6 добавлена поддержка подчёркиваний в числовых литералах строк для улучшения читаемости:
int("1_000_000")1000000
Начиная с Python 3.8, в документации уточнено поведение при преобразовании объектов, реализующих метод __int__().
Расширенные примеры применения
Преобразование логических значений:
int(True)
int(False)1 0
Использование с объектами, имеющими метод __int__:
class CustomNumber:
def __int__(self):
return 42
int(CustomNumber())42
Чтение числа из строки с пробелами (требуется предварительная обработка):
int(" 25 ".strip())25
Работа с разными системами счисления, включая максимальное основание 36:
int("Z", 36)
int("1A", 16)35 26
Использование для округления в сторону нуля (отбрасывание дробной части):
int(-9.9)
import math
math.trunc(-9.9)-9 -9