Числа: целые, вещественные, комплексные
Числа в Python 3: целые, вещественные, комплексные. Работа с числами и операции над ними.
Целые числа (int)
Числа в Python 3 ничем не отличаются от обычных чисел. Они поддерживают набор самых обычных математических операций:
| x + y | Сложение |
| x — y | Вычитание |
| x * y | Умножение |
| x / y | Деление |
| x // y | Получение целой части от деления |
| x % y | Остаток от деления |
| -x | Смена знака числа |
| abs(x) | Модуль числа |
| divmod(x, y) | Пара (x // y, x % y) |
| x ** y | Возведение в степень |
| pow(x, y[, z]) | x y по модулю (если модуль задан) |
Также нужно отметить, что целые числа в python 3, в отличие от многих других языков, поддерживают длинную арифметику (однако, это требует больше памяти).
Битовые операции
Над целыми числами также можно производить битовые операции
Дополнительные методы
int.bit_length() — количество бит, необходимых для представления числа в двоичном виде, без учёта знака и лидирующих нулей.
int.to_bytes(length, byteorder, *, signed=False) — возвращает строку байтов, представляющих это число.
classmethod int.from_bytes(bytes, byteorder, *, signed=False) — возвращает число из данной строки байтов.
Системы счисления
Те, у кого в школе была информатика, знают, что числа могут быть представлены не только в десятичной системе счисления. К примеру, в компьютере используется двоичный код, и, к примеру, число 19 в двоичной системе счисления будет выглядеть как 10011. Также иногда нужно переводить числа из одной системы счисления в другую. Python для этого предоставляет несколько функций:
- int([object], [основание системы счисления]) — преобразование к целому числу в десятичной системе счисления. По умолчанию система счисления десятичная, но можно задать любое основание от 2 до 36 включительно.
- bin(x) — преобразование целого числа в двоичную строку.
- hex(х) — преобразование целого числа в шестнадцатеричную строку.
- oct(х) — преобразование целого числа в восьмеричную строку.
Вещественные числа (float)
Вещественные числа поддерживают те же операции, что и целые. Однако (из-за представления чисел в компьютере) вещественные числа неточны, и это может привести к ошибкам:
Для высокой точности используют другие объекты (например Decimal и Fraction)).
Также вещественные числа не поддерживают длинную арифметику:
Простенькие примеры работы с числами:
Дополнительные методы
float.as_integer_ratio() — пара целых чисел, чьё отношение равно этому числу.
float.is_integer() — является ли значение целым числом.
float.hex() — переводит float в hex (шестнадцатеричную систему счисления).
classmethod float.fromhex(s) — float из шестнадцатеричной строки.
Помимо стандартных выражений для работы с числами (а в Python их не так уж и много), в составе Python есть несколько полезных модулей.
Модуль math предоставляет более сложные математические функции.
Модуль random реализует генератор случайных чисел и функции случайного выбора.
Подробно про int() в Python
Метод int() в Python возвращает целочисленный объект из любого числа или строки.
Синтаксис метода int():
Параметры
Функция принимает два аргумента:
- x – число или строка, которые нужно преобразовать в целочисленный объект. Аргумент по умолчанию равен нулю.
- base – основание числа в x. Может быть 0 (буквальный код) или 2-36.
Возвращаемое значение
- целочисленный объект из данного числа или строки обрабатывает базу по умолчанию как 10;
- возвращает 0 (без параметров);
- обрабатывает строку в заданной базе (0, 2, 8, 10, 16).
Пример 1
Пример 2: Как работает для десятичных, восьмеричных и шестнадцатеричных чисел?
Пример 3: Для пользовательских объектов
Внутри функция вызывает метод объекта __int __().
Таким образом, даже если объект не является числом, вы можете преобразовать его в целочисленный объект.
Вы можете сделать это, переопределив методы __index __() и __int __() класса для возврата числа.
Эти два метода должны возвращать то же значение, поскольку более старые версии Python используют __int __(), а более новые используют метод __index __().
Класс int() в Python, преобразует в тип int.
Позволяет преобразовать число или строку с числом в тип int.
Синтаксис:
Параметры:
- x — число или строка,
- base — числовой формат, по умолчанию 10.
Возвращаемое значение:
Описание:
Класс int() возвращает целочисленный объект, созданный из числа или строки, или возвращает 0, если аргументы не заданы. Если x является числом, возвращает x.__int__() . У вещественных чисел удаляется дробная часть.
Если аргумент не число или если задан числовой формат base , то аргумент должен быть строкой, байтами, или экземпляром bytearray , представляющим литерал целого числа по основанию base . Литералу может предшествовать + или — без пробела между ними и может окружать пробелами.
По умолчанию base=10 . Допустимые значения 0 и от 2 до 36. Основания 2, 8, и 16 могут иметь необязательные префиксы 0b / 0B , 0o / 0O или 0x / 0X соответственно. Основание 0 означает интерпретацию x точно, как литерал кода, таким образом int('010', 0) не является правильным, в то время как int('010') верно, а также верно int('010', 8) .