Функция 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(x, base=10)
- x : Объект, который нужно преобразовать в целое число. Это может быть число, строка или другой объект, поддерживающий числовое представление.
- base=10 : Необязательный параметр, указывающий основание системы счисления при преобразовании строки. По умолчанию используется десятичная система.
Пример использования:
# Преобразование строки в целое число number_str = "42" number_int = int(number_str) print("Целое число:", number_int)
Целые числа 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(x, base=10)
Преобразует x к целому числу в десятичной системе счисления. Вместо десятичной системы можно указать любое основание от 2 до 36 включительно.
Параметры ¶
Функция int() принимает два параметра:
- value — любая числовая строка, байтовый объект или число
- base необязательный — система счисления, в которой в данный момент находится значение
Возвращаемое значение ¶
Функция int() возвращает:
- целая часть числа — для одного значения аргумента (любое число)
- 0 — без аргументов
- целочисленное представление числа с заданным основанием (0, 2, 8, 10, 16)
Примеры ¶
# int() с целочисленным значениемprint("int(94) is:", int(94)) # int() со значением с плавающей запятойprint("int(58.23) is:", int(58.23)) # int() с числовым строковым значениемprint("int('123') is:", int("123")) # Результат: int(94) is: 94int(58.23) is: 58int('123') is: 123
Python с нуля. Освойте с Виртуальным ИИ-помощником!
Теоретические уроки и практические задачи
Пишите и проверяйте код прямо в браузере
Виртуальный ИИ-помощник поможет в любое время дня и ночи
Сообщество учеников для взаимопомощи и обмена опытом
200 000+ зарегистрированных участников. Присоединяйтесь!
Попробовать бесплатно
©2023 Letpy
Мы используем файлы cookie
Наш сайт использует файлы cookie для улучшения пользовательского опыта, сбора статистики и обеспечения доступа к обучающим материалам. Мы также передаем информацию об использовании вами нашего сайт партерам по социальным сетям, рекламе и аналитике. В свою очередь, наши партнеры могут объединять ее с другой предоставленной вами информацией, или с информацией, которую они собрали в результате использования вами их услуг.