Числа¶
Числа в 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]) | xy по модулю (если модуль задан) |
Также нужно отметить, что целые числа в python 3, в отличие от многих других языков, поддерживают длинную арифметику (однако, это требует больше памяти).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
Битовые операции¶
Над целыми числами также можно производить битовые операции
| Синтаксис | Описание |
|---|---|
x | y | Побитовое или |
x ^ y | Побитовое исключающее или |
x & y | Побитовое и |
x << n | Битовый сдвиг влево |
x >> y | Битовый сдвиг вправо |
~x | Инверсия битов |
Дополнительные методы¶
int.bit_length()- количество бит, необходимых для представления числа в двоичном виде, без учёта знака и лидирующих нулей.
1 2 3 4 5 | |
int.to_bytes(length, byteorder, *, signed=False)- возвращает строку байтов, представляющих это число.
1 2 3 4 5 6 7 8 9 | |
classmethod int.from_bytes(bytes, byteorder, *, signed=False)- возвращает число из данной строки байтов.
1 2 3 4 5 6 7 8 9 10 | |
Системы счисления¶
Те, у кого в школе была информатика, знают, что числа могут быть представлены не только в десятичной системе счисления. К примеру, в компьютере используется двоичный код, и, к примеру, число 19 в двоичной системе счисления будет выглядеть как 10011. Также иногда нужно переводить числа из одной системы счисления в другую. Python для этого предоставляет несколько функций:
int([object], [основание системы счисления])- преобразование к целому числу в десятичной системе счисления. По умолчанию система счисления десятичная, но можно задать любое основание от
2до36включительно. bin(x)- преобразование целого числа в двоичную строку.
hex(х)- преобразование целого числа в шестнадцатеричную строку.
oct(х)- преобразование целого числа в восьмеричную строку.
Примеры:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
Вещественные числа (float)¶
Вещественные числа поддерживают те же операции, что и целые. Однако (из-за представления чисел в компьютере) вещественные числа неточны, и это может привести к ошибкам:
1 2 | |
Для высокой точности используют другие объекты (например Decimal и Fraction)).
Также вещественные числа не поддерживают длинную арифметику:
1 2 3 4 5 | |
Простенькие примеры работы с числами:
1 2 3 4 5 6 7 8 9 | |
Дополнительные методы¶
float.as_integer_ratio()- пара целых чисел, чьё отношение равно этому числу.
float.is_integer()- является ли значение целым числом.
float.hex()- переводит
floatвhex(шестнадцатеричную систему счисления). classmethod float.fromhex(s)floatиз шестнадцатеричной строки.
1 2 3 4 | |
Помимо стандартных выражений для работы с числами (а в Python их не так уж и много), в составе Python есть несколько полезных модулей.
Модуль math предоставляет более сложные математические функции.
1 2 3 4 5 | |
Модуль random реализует генератор случайных чисел и функции случайного выбора.
1 2 3 | |
Комплексные числа (complex)¶
В Python встроены также и комплексные числа:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | |
Для работы с комплексными числами используется также модуль cmath.