Функция int
Функция int создает новое число из исходного объекта. В первом параметре указываем объект, из которого будем делать строку. Во втором необязательном параметре можно задать числовой формат (по умолчанию 10 ).
Синтаксис
int(число или строка, [числовой формат])
Пример
Давайте с помощью функции int сделаем из строки число:
txt = ‘123’ num = int(txt) print(num) print(type(num))
Результат выполнения кода:
Пример
А теперь давайте из строчного значения сделаем число в восьмеричном формате:
txt = ‘0o12’ num = int(txt, base=8) print(num) print(type(num))
Результат выполнения кода:
Смотрите также
- функция str ,
которая создает строку - функция list ,
которая создает список
Целые числа int в Python
Обычные целые числа в Python имеют тип int и записываются как строки, состоящие из десятичных цифр. Целые числа типа int (положительные и отрицательные) имеют неограниченную точность, могут принимать сколь угодно большие значения. Тип int являются неизменяемым объектом, выполняя операцию над целыми числами, вы получаете новый числовой объект.
Целые числа поддерживают следующие операции:
- арифметические операции;
- побитовые операции;
- операции сравнения.
Тип int в языке Python представлен классом int() , он позволяет:
- преобразовать строку в целое число типа int с учетом указанного основания системы счисления (десятичные по основанию 10, шестнадцатеричные по основанию 16, восьмеричные по основанию 8 и двоичные по основанию 2).
- преобразовать вещественные числа типа float в тип int (отбрасывает дробную часть).
- преобразовать восьмеричные, шестнадцатеричные и двоичные литералы целых чисел в тип int
Класс int() не сможет преобразовать к типу int :
- числа типа complex , т.к. нет однозначного способа преобразования данного типа чисел.
- строку с записью числа с плавающей точкой (вещественного числа)
Примеры преобразования объектов к типу int :
# Преобразование строки с записью # целого числа в десятичной форме к типу int >>> int(' -3 ', base=10) # 3 # При преобразовании десятичных литералов, # записанных в строки, основание можно опускать >>> int(' +5 ') # 5 >>> int(' -15_125') # -15125 # Преобразование типа float в тип `int` >>> int(3.23) # 3 >>> int(1.) # 1 >>> int(3.14e-10) # 0 # Восьмеричные литералы и строки с ними - в тип int >>> int(0o177) # 127 >>> int(' 0o177 ', base=8) # 127 # Шестнадцатеричные литералы и строки с ними - в тип int >>> int(0x9ff) # 2559 >>> int(' 0x9ff ', base=16) # 2559 # Двоичные литералы и строки с ними - в тип int >>> int(0b101010) # 42 >>> int('0b101010', base=2) # 42
Начиная с Python 3.6, чтобы облегчить визуальную оценку величины числа, между цифрами и после любого спецификатора системы счисления разрешается вставлять одиночные символы подчеркивания.
>>> 100_000, 0x_FF_FF, 0o7_777 # (100000, 65535, 4095)
Целые числа еще могут записываться как, шестнадцатеричные (по основанию 16), восьмеричные (по основанию 8) и двоичные (по основанию 2).
- Шестнадцатеричные литералы начинаются с комбинации символов 0x или 0X, вслед за которыми следуют шестнадцатеричные цифры (0-9 и A-F). Шестнадцатеричные цифры могут вводиться как в нижнем, так и в верхнем регистре.
- Литералы восьмеричных чисел начинаются с комбинации символов 0o или 0O (ноль и следующий за ним символ «o» в верхнем или нижнем регистре), вслед за которыми следуют восьмеричные цифры (0-7).
- Двоичные литералы начинаются с комбинации символов 0b или 0B, вслед за которыми следуют двоичные цифры (0 – 1)
Все эти литералы создают объекты целых чисел, они являются всего лишь альтернативными формами записи значений. Для преобразования целого числа в строку с представлением в любой из трех систем счисления можно использовать встроенные функции hex() , oct() и bin()
Методы типа int :
int.bit_length() :
Возвращает количество битов, необходимых для представления целого числа в двоичном виде, исключая знак и начальные нули:
>>> n = -37 >>> bin(n) # '-0b100101' >>> n.bit_length() # 6
def bit_length(self): # двоичное представление: bin(-37) => '- 0b100101' s = bin(self) # удалить начальные нули и знак минус s = s.lstrip('-0b') # len('100101') => 6 return len(s)
int.bit_count() :
Добавлен в Python 3.10. Возвращает количество единиц в двоичном представлении абсолютного значения целого числа.
>>> n = 19 >>> bin(n) '0b10011' >>> n.bit_count() # 3 >>> (-n).bit_count() # 3
def bit_count(self): return bin(self).count("1")
Новое в Python 3.10.
int.to_bytes(length, byteorder, *, signed=False) :
Возвращает массив байтов, представляющих целое число. Параметры length , byteorder являются обязательными:
— length задает необходимое количество байтов,
— byteorder определяет в каком порядке возвращать байты и имеют значения ‘big’ — от старшего к младшему, ‘little’ — от младшего к старшему.
— signed позволяет установить использование дополнительного кода для представления целого числа. Если signed=False и задано отрицательное целое число, то бросается OverflowError .
>>> (1024).to_bytes(2, byteorder='big') # b'\x04\x00' >>> (1024).to_bytes(10, byteorder='big') # b'\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00' >>> (-1024).to_bytes(10, byteorder='big', signed=True) # b'\xff\xff\xff\xff\xff\xff\xff\xff\xfc\x00' >>> x = 1000 >>> x.to_bytes((x.bit_length() + 7) // 8, byteorder='little') # b'\xe8\x03'
Если указанных байтов недостаточно для представления числа, то будет вызвано исключение OverflowError. Что бы узнать порядок байтов который использует платформа используйте sys.byteorder .
int.from_bytes(bytes, byteorder, *, signed=False) :
Возвращает целое число, которое соответствует указанному массиву байтов.
Параметры bytes и byteorder являются обязательными.
— bytes должен быть байто-подобным объектом (строки байтов, массивы байтов, array.array и т.д.)
— byteorder определяет в каком порядке возвращать байты и имеют значения ‘big’ — от старшего к младшему, ‘little’ — от младшего к таршему.
— signed позволяет установить использование дополнительного кода для представления целого числа. Если signed=False и задано отрицательное елое число, то бросается OverflowError .
>>> int.from_bytes(b'\x00\x7f', byteorder = 'big') # 127 >>> int.from_bytes(b'\x00\x7f', byteorder = 'little') # 32512 >>> int.from_bytes(b'\xff\x81', 'big', signed = True) # -127 >>> int.from_bytes([1, 0], 'big') # можно указать "массив" байтов # 256 >>> int.from_bytes([255, 255], 'big') # 65535
- КРАТКИЙ ОБЗОР МАТЕРИАЛА.
- Утиная типизация ‘Duck Typing’
- Что такое вызываемый объект callable?
- Как проверить тип переменной/объекта
- Логический тип данных bool
- Целые числа int
- Ограничение длины преобразования целочисленной строки
- Вещественные числа float
- Комплексные числа complex
- Типы последовательностей
- Список list
- Кортеж tuple
- Диапазон range
- Текстовые строки str
- Словарь dict
- Множество set и frozenset
- Итератор Iterator, протокол итератора
- Генератор generator и выражение yield
- Контекстный менеджер with
- Байтовые строки bytes
- Байтовый массив bytearray
- Тип memoryview, буфер обмена
- Файловый объект file object
- Универсальный псевдоним GenericAlias
- Объект объединения Union
Класс int() в Python, преобразует в тип int
Позволяет преобразовать число или строку с числом в тип int
Синтаксис:
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
- ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
- Функция abs(), абсолютное значение числа
- Функция all(), все элементы True
- Функция any(), хотя бы один элемент True
- Функция ascii(), преобразует строку в ASCII
- Функция bin(), число в двоичную строку
- Класс bool(), логическое значение объекта
- Функция breakpoint(), отладчик кода
- Класс bytearray(), преобразует в массив байтов
- Класс bytes(), преобразует в строку байтов
- Функция callable(), проверяет можно ли вызвать объект
- Функция chr(), число в символ Юникода
- Класс classmethod, делает функцию методом класса
- Функция compile() компилирует блок кода Python
- Класс complex(), преобразует в комплексное число
- Функция delattr(), удаляет атрибут объекта
- Класс dict() создает словарь
- Функция dir(), все атрибуты объекта
- Функция divmod(), делит числа с остатком
- Функция enumerate(), счетчик элементов последовательности
- Функция eval(), выполняет строку-выражение с кодом
- Функция exec(), выполняет блок кода
- Функция filter(), фильтрует список по условию
- Класс float(), преобразует в вещественное число
- Функция format(), форматирует значение переменной
- Класс frozenset(), преобразует в неизменяемое множество
- Функция getattr(), значение атрибута по имени
- Функция globals(), переменные глобальной области
- Функция hasattr(), наличие атрибута объекта
- Функция hash(), хэш-значение объекта
- Функция help(), справка по любому объекту
- Функция hex(), число в шестнадцатеричную строку
- Функция id(), идентификатор объекта
- Функция input(), ввод данных с клавиатуры
- Класс int(), преобразует в тип int
- Функция isinstance(), принадлежность экземпляра к классу
- Функция issubclass(), проверяет наследование класса
- Функция iter(), создает итератор
- Функция len(), количество элементов объекта
- Класс list(), преобразовывает в список
- Функция locals(), переменные локальной области
- Функция map(), обработка последовательности без цикла
- Функция max(), максимальное значение элемента
- Класс memoryview(), ссылка на буфер обмена
- Функция min(), минимальное значение элемента
- Функция next(), следующий элемент итератора
- Класс object(), возвращает безликий объект
- Функция oct(), число в восьмеричную строку
- Функция open(), открывает файл на чтение/запись
- Функция ord(), число символа Unicode
- Функция pow(), возводит число в степень
- Функция print(), печатает объект
- Класс property(), метод класса как свойство
- Класс range(), генерирует арифметические последовательности
- Функция repr(), описание объекта
- Функция reversed(), разворачивает последовательность
- Функция round(), округляет число
- Класс set(), создает или преобразовывает в множество
- Функция setattr(), создает атрибут объекта
- Класс slice(), шаблон среза
- Функция sorted(), выполняет сортировку
- Декоратор staticmethod(), метод класса в статический метод
- Класс str(), преобразует объект в строку
- Функция sum(), сумма последовательности
- Функция super(), доступ к унаследованным методам
- Класс tuple(), создает или преобразует в кортеж
- Класс type(), возвращает тип объекта
- Функция vars(), словарь переменных объекта
- Функция zip(), объединить элементы в список кортежей
- Функция __import__(), находит и импортирует модуль
- Функция aiter(), создает асинхронный итератор
- Функция anext(), следующий элемент асинхронного итератора
Функция int() в Python
Функция int() в Python возвращает целочисленный объект из указанного ввода. Возвращаемый объект int всегда будет в базе 10.
Синтаксис функции int():
class int(x=0, base=10)
Некоторые важные моменты для функции int():
- Если аргумент не указан, функция int() вернет 0.
- Если указан целочисленный буквальный аргумент, базу указывать не следует. Возвращенный объект int будет десятичным, даже если аргумент имеет шестнадцатеричный, двоичный или любой другой формат.
- Для аргумента с плавающей запятой десятичная точка будет усечена, и будет возвращено значение типа int. Округление производиться не будет.
- Если аргумент – строка, он будет преобразован в int. Если строковый аргумент не находится в базе 10, необходимо указать базу.
- Базовый аргумент может быть предоставлен только для строки, байтов и аргументов байтового массива. Допустимые значения: от 0 и от 2 до 36.
- Мы также можем использовать int() с настраиваемым объектом, в этом случае будет вызвана функция object __int __(). Если функция __int __() не определена, будет вызвана функция __trunc __(). Если ни один из них не определен, будет выброшено TypeError.
Давайте рассмотрим примеры функции int() с разными типами входных аргументов.
С числами
x = int() print(type(x)) print(x) print(int(0xF)) print(int(0b111))
0 15 7
С float
x = int(10.043) print(x) x = int(10.8901) print(x)
