Содержание
Памятка: ключевые методы для работы с дробной частью
- Используйте math.modf(x) для получения кортежа (дробная, целая).
- Применяйте x % 1 для быстрого выделения дробной части.
- Вычисляйте x — int(x) для простого отделения дробной части.
- Помните, что для отрицательных чисел дробная часть может быть отрицательной.
- Для округления дробной части используйте round().
- Избегайте проблем с точностью float при сравнении дробных частей.
- Для комплексных чисел обрабатывайте real и imag отдельно.
- Используйте Decimal для финансовых расчетов с дробными числами.
- Проверяйте наличие дробной части через сравнение с int().
- Не путайте дробную часть с остатком от деления (%).
- Для целых чисел дробная часть всегда равна 0.0.
- При работе с большими числами учитывайте ограничения float.
Целые числа (int)
Ниже вы можете увидеть стандартные Python-операции, в которых используется целое число (int):
Таблица №1
| a + b | Складываем |
| a — b | Вычитаем |
| a * b | Умножаем |
| a / b | Делим |
| a // b | Можем вывести целую часть от деления |
| a % b | Можем вывести остаток от деления |
| -a | Меняем знак числа |
| abs(x) | Можем вывести модуль числа x |
| divmod(a, b) | Пара (a // b, a % b) |
| a ** b | Операция для возведения в степень |
| pow(a, b[, x]) | ab по модулю (в случае, если модуль задан) |
Кроме того, числа int в Python 3 поддерживают длинную арифметику в отличие от некоторых других языков программирования. Однако для этого требуется больше памяти.
Битовые операции
Над числами int в Python можно выполнять и битовые операции. К примеру, a | b — это побитовое «или». Есть и другие варианты:
Таблица №2
| a ^ b | Побитовое исключающее или |
| a & b | Побитовое и |
| a << b | Сдвиг влево |
| a >> b | Сдвиг вправо |
| ~a | Инверсия битов |
Операции с вещественными числами (float)
Чтобы вывести дробную часть, в Python используют вещественные числа. Они поддерживают выполнение тех же операций, что и в случае с int. Но из-за особенностей их представления в компьютере, когда выводишь дробную часть, возможны неточности и даже ошибки:
Для повышения точности операций используются такие объекты, как Decimal и Fraction.
Дополнительные методы и операции в Python
В эти операции входят: • int.bit_length() — количество бит, которое необходимо, чтобы представить число в двоичном виде без учёта лидирующих нулей и знака; • int.to_bytes(length, byteorder, *, signed=False) — метод возвращает строку байтов, которые представляют это число; • classmethod int.from_bytes(bytes, byteorder, *, signed=False) — возвращение числа из заданной строки байтов.
>>> >>> int.from_bytes(b’\x00\x10′, byteorder=’big’) 16 >>> int.from_bytes(b’\x00\x10′, byteorder=’little’) 4096 >>> int.from_bytes(b’\xfc\x00′, byteorder=’big’, signed=True) -1024 >>> int.from_bytes(b’\xfc\x00′, byteorder=’big’, signed=False) 64512 >>> int.from_bytes([255, 0, 0], byteorder=’big’) 16711680
Вспомогательные методы
К ним относят: • float.as_integer_ratio() — это пара целых чисел int, отношение которых равно этому числу; • float.is_integer() — функция определят, является ли данное значение целым числом; • () — функция переводит float в 16-тиричную систему счисления, то есть в hex; • classmethod (s) — функцию используют для получения float из 16-тиричной строки.
Кроме стандартных выражений, в Python есть и специальные полезные модули. Например, модуль math позволяет выполнять более сложные арифметические функции:
>>> >>> import random >>> () 0.75849839767373282
Операции с системами счисления
Как гласит математика и информатика, числа можно представить как в десятичной, так и в двоичной системе счисления. Допустим, число 19 в двоичной системе имеет вид 10011. Также можно переводить числа из одной системы в другую. В Python для этого есть ряд функций: • int([object], [основание системы счисления]) — функция нужна для преобразования к целому числу. По умолчанию речь идёт о десятичной системе, однако можно задать любое основание в пределах чисел 2-36. • bin(x) — функция для преобразования целого числа в двоичную строку; • hex(х) — аналогично, но действительное целое число преобразуется в шестнадцатеричную строку; • oct(х) — для преобразования чисел в восьмеричную строку.
>>> >>> a = int(’19’) # Строка переводится в число >>> b = int(‘19.5’) # Строка не является числом Traceback (most recent call last): File «», line 1, in ValueError: invalid literal for int() with base 10: ‘19.5’ >>> c = int(19.5) # Отсекает дробную часть, если применена к числу с плавающей точкой >>> print(a, c) 19 19 >>> bin(19) ‘0b10011’ >>> oct(19) ‘0o23’ >>> hex(19) ‘0x13’ >>> 0b10011 # Вариант записи числовых констант 19 >>> int(‘10011’, 2) 19 >>> int(‘0b10011’, 2) 19
Комплексные числа в Python (complex)
>>> >>> x = complex(1, 2) >>> print(x) (1+2j) >>> y = complex(3, 4) >>> print(y) (3+4j) >>> z = x + y >>> print(x) (1+2j) >>> print(z) (4+6j) >>> z = x * y >>> print(z) (-5+10j) >>> z = x / y >>> print(z) (0.44+0.08j) >>> print(()) # Сопряжённое число (1-2j) >>> print() # Мнимая часть 2.0 >>> print() # Действительная часть 1.0 >>> print(x > y) # Числа нельзя сравнить Traceback (most recent call last): File «», line 1, in TypeError: unorderable types: complex() > complex() >>> print(x == y) # Однако можно проверить их на равенство False >>> abs(3 + 4j) # Модуль 5.0 >>> pow(3 + 4j, 2) # Возведение в степень, получение значения степени (-7+24j)
Часто задаваемые вопросы о выделении дробной части в Python
Вопрос: Как получить дробную часть числа в Python?
Ответ: Используйте math.modf() или оператор % с 1 (для положительных чисел).
Вопрос: В чем разница между math.modf() и оператором %?
Ответ: math.modf() возвращает кортеж (дробная, целая), а % возвращает остаток от деления.
Вопрос: Как выделить дробную часть отрицательного числа?
Ответ: math.modf() корректно обрабатывает отрицательные числа, возвращая отрицательную дробную часть.
Вопрос: Можно ли получить дробную часть без импорта модуля math?
Ответ: Да, через выражение number — int(number) или number % 1.
Вопрос: Как округлить дробную часть до определенного знака?
Ответ: Используйте round(дробная_часть, количество_знаков).
Вопрос: Работает ли math.modf() с комплексными числами?
Ответ: Нет, для комплексных чисел нужно обрабатывать отдельно действительную и мнимую части.
Вопрос: Как получить дробную часть числа с плавающей точкой?
Ответ: Те же методы (math.modf, %, int) работают и с float.
Вопрос: Почему math.modf() возвращает кортеж?
Ответ: Для удобства — сразу возвращает и целую, и дробную часть.
Вопрос: Как проверить, есть ли у числа дробная часть?
Ответ: Сравните число с int(number): если равны — дробной части нет.
Вопрос: Как выделить дробную часть в Python 2 и Python 3?
Ответ: Методы одинаковы, но в Python 2 деление целых чисел дает целый результат.























