Вывести дробную часть положительного числа на Питоне
Дано положительное действительное число X. Выведите его дробную часть.
Вот моё решение, но оно неправильное:
Остаток от деления на единицу, как это ни странно, даст нужный результат:
![]()
Чтобы разделить число на дробную и целые части, можно math.modf() использовать:
print(x — int(x)) — это более точный вариант, но print(a%1) также сработает
![]()
![]()
И округлить по вкусу)))
Из курса ВШЭ решал задание такое вот так:
![]()
Ответом будет 0.1| divmod(n,1) разделит число n на кортеж (4.0, 0.0999999998). Дальше я просто беру число под индексом [1] , это число 0.0999999998, и затем округляю его до десятых. В итоге получается 0.1
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.6.8.43486
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Математические операции в Python: как вывести дробную часть и работать с числами
Представление чисел в Python 3 не отличается от обычных математических чисел. И поддерживают такие числа самые обыкновенные операции: сложение, вычитание, умножение, деление, возведение в степень, получение дробной части и т. п.
Целые числа (int)
Ниже вы можете увидеть стандартные Python-операции, в которых используется целое число (int):
| 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 — это побитовое «или». Есть и другие варианты:
Дополнительные методы и операции в Python
В эти операции входят: • 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)
Чтобы вывести дробную часть, в Python используют вещественные числа. Они поддерживают выполнение тех же операций, что и в случае с int. Но из-за особенностей их представления в компьютере, когда выводишь дробную часть, возможны неточности и даже ошибки:
Для повышения точности операций используются такие объекты, как Decimal и Fraction.
Вспомогательные методы
К ним относят:
• float.as_integer_ratio() — это пара целых чисел int, отношение которых равно этому числу; • float.is_integer() — функция определят, является ли данное значение целым числом; • float.hex() — функция переводит float в 16-тиричную систему счисления, то есть в hex; • classmethod float.fromhex(s) — функцию используют для получения float из 16-тиричной строки.
Кроме стандартных выражений, в Python есть и специальные полезные модули. Например, модуль math позволяет выполнять более сложные арифметические функции:
А вот модуль random запускает генератор случайных чисел, позволяя реализовать функции случайного выбора:
Комплексные числа в Python (complex)
Также в Python встроены комплексные числа:
Кроме того, для работы с complex может применяться модуль cmath.

На этом пока что всё. Следите за новостями и не забывайте оставлять свои комментарии!
Вывести дробную часть положительного числа на Питоне
Дано положительное действительное число X. Выведите его дробную часть.
Вот моё решение, но оно неправильное:
Ответы (6 шт):
Остаток от деления на единцу, как это ни странно, даст нужный результат:
Чтобы разделить число на дробную и целые части, можно math.modf() использовать:
print(x — int(x)) — это более точный вариант, но print(a%1) также сработает
И округлить по вкусу)))
Из курса ВШЭ решал задание такое вот так:
Ответом будет 0.1| divmod(n,1) разделит число n на кортеж (4.0, 0.0999999998). Дальше я просто беру число под индексом [1] , это число 0.0999999998, и затем округляю его до десятых. В итоге получается 0.1
дроби-Рациональные числа
Модуль fractions обеспечивает поддержку арифметики рациональных чисел.
Дробный экземпляр может быть построен из пары целых чисел,из другого рационального числа или из строки.
class fractions.Fraction(numerator=0, denominator=1) classfractions.Fraction(other_fraction) classfractions.Fraction(float) classfractions.Fraction(decimal) classfractions.Fraction(string)
Первая версия требует, чтобы числитель и знаменатель были экземплярами чисел. numbers.Rational и возвращает новый экземпляр Fraction со значением numerator/denominator . Если знаменатель равен 0 , возникает ZeroDivisionError . Вторая версия требует, чтобы other_fraction был экземпляром numbers.Rational и возвращал экземпляр Fraction с тем же значением. Следующие две версии принимают либо число с float , либо экземпляр decimal.Decimal и возвращают Fraction экземпляр с точно таким же значением. Обратите внимание, что из-за обычных проблем с двоичными числами с плавающей запятой (см. Арифметика с плавающей запятой: проблемы и ограничения ) аргумент Fraction(1.1) не точно равен 11/10, поэтому Fraction(1.1) не возвращает Fraction(11, 10) как и следовало ожидать. (Но см. документацию по limit_denominator() ниже.) Последняя версия конструктора ожидает строку или экземпляр Unicode. Обычная форма для этого экземпляра:
где необязательный sign может быть «+» или «-», а numerator и denominator (если он присутствует) представляют собой строки десятичных цифр (символы подчеркивания могут использоваться для разделения цифр, как и в случае целочисленных литералов в коде). Кроме того, любая строка, представляющая конечное значение и принятая конструктором float , также принимается конструктором Fraction . В любой форме входная строка также может иметь начальные и/или конечные пробелы. Вот некоторые примеры:
Класс Fraction наследуется от абстрактного базового класса numbers.Rational и реализует все методы и операции этого класса. Экземпляры Fraction являются хешируемыми и должны рассматриваться как неизменяемые. Кроме того, Fraction имеет следующие свойства и методы:
Изменено в версии 3.2: Конструктор Fraction теперь принимает экземпляры float и decimal.Decimal .
Изменено в версии 3.9: math.gcd() теперь используется для нормализации числителя и знаменателя . math.gcd() всегда возвращает тип int . Раньше тип НОД зависел от числителя и знаменателя .
Изменено в версии 3.11: Подчеркивание теперь разрешено при создании экземпляра Fraction из строки в соответствии с правилами PEP 515 .
Изменено в версии 3.11: Fraction теперь реализует __int__ , чтобы удовлетворить проверки экземпляра typing.SupportsInt .
Числитель фракции в самом нижнем семестре.
Знаменатель фракции в нижнем семестре.
Вернуть кортеж из двух целых чисел,соотношение которых равно дроби и имеет положительный знаменатель.
Новинка в версии 3.8.
Альтернативный конструктор, который принимает только экземпляры float или numbers.Integral . Помните, что значение Fraction.from_float(0.3) не совпадает с значением Fraction(3, 10) .
Начиная с Python 3.2, вы также можете создавать экземпляр Fraction непосредственно из числа с float .
Альтернативный конструктор, который принимает только экземпляры decimal.Decimal или numbers.Integral .
Начиная с Python 3.2, вы также можете создать экземпляр Fraction непосредственно из экземпляра decimal.Decimal .
Находит и возвращает ближайшую к self Fraction , знаменатель которой не превышает max_denominator. Этот метод полезен для поиска рациональных приближений к заданному числу с плавающей запятой:
или для восстановления рационального числа,представленного в виде float:
Возвращает наибольшее значение int <= self . К этому методу также можно получить доступ через math.floor() :
Возвращает наименьшее значение int >= self . К этому методу также можно получить доступ через math.ceil() .
Первая версия возвращает ближайшее int к self , округляя половину до четного. Вторая версия округляет self до ближайшего кратного Fraction(1, 10**ndigits) (логически, если ndigits отрицательное), снова округляя половину в сторону четности . К этому методу также можно получить доступ через функцию round() .