Числа¶
Числа в 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
.