Шаг 52.
Python: сборник рецептов.
Числа, даты и время. Вычисления с дробями

    На этом шаге мы рассмотрим использование модуля fractions.

Задача

    Вы вошли в машину времени и внезапно обнаружили себя делающим домашку по математике с задачками про дроби. Или же вы просто пишете код, который будет обсчитывать измерения, сделанные в вашей столярной мастерской...

Решение

    Модуль fractions может быть использован для выполнения математических операций с дробями. Например:

>>> from fractions import Fraction
>>> a = Fraction(5, 4)
>>> b = Fraction(7, 16)
>>> print(a + b)
27/16
>>> print(a * b)
35/64
>>> # Получение числителя/знаменателя
>>> c = a * b
>>> c.numerator
35
>>> c.denominator
64
>>> # Преобразуем в float
>>> float(c)
0.546875
>>> # Ограничиваем знаменатель значения
>>> print(c.limit_denominator(8))
4/7
>>> # Конвертируем float в дробь
>>> x = 3.75
>>> y = Fraction(*x.as_integer_ratio())
>>> y
Fraction(15, 4)
>>>


Обсуждение

    Вычисления с дробями нечасто возникают в обычных программах, но иногда имеет смысл ими воспользоваться. Например, если данные каких-то измерений поступают в виде дробей, то можно работать прямо с ними, что снимает необходимость конвертирования в десятичные дроби или числа с плавающей точкой.

    На следующем шаге мы рассмотрим вычисления на больших массивах чисел.




Предыдущий шаг Содержание Следующий шаг