• burger-icon

    Шаг 2. decimal, fractions, complex

    Баллов за прохождение: 1

    decimal, fractions, complex

    На этом уроке мы рассмотрим модули decimal и fratcions, а так же функцию complex для работы с числами

    Модуль decimal

    При работе с числами с плавающей точкой мы сталкиваемся с проблемой: интерпретатор неверно подсчитывает результат:

    float_sum = 0.3 + 0.3 + 0.3
    print(float_sum) # 0.8999999999999999

    В программах, где все зависит от точности вычислений, данная проблема может сильно вам помешать. К счастью, мы можем это исправить благодаря встроенному в Python модулю decimal.

    Для того, чтобы начать работать с числами с помощью данного модуля, нужно использовать класс Decimal. Создадим объект класса и передадим в него строковое значение, представляющее число:

    from decimal import Decimal
    
    num = Decimal('0.3')
    num = num + num + num
    print(num) # 0.9

    Теперь Python верно подсчитал результат сложения наших чисел.

    Мы можем использовать целые числа в операциях с Decimal, но не можем смешивать числа Decimal с float:

    from decimal import Decimal
    
    num = Decimal('0.3')
    num = num + 2
    print(num) # 2.3
    
    num = Decimal('0.3')
    num = num + 0.3
    print(num) # Ошибка

    Модуль fractions

    Модуль fractions позволяет нам работать с рациональными числами с помощью класса Fraction. Для создания экземпляра класса мы можем использовать пару чисел(числитель и знаменатель соответственно), числа с плавающей точкой, числа Decimal, строку, представляющей собой число и другое рациональное число.

    Мы так же можем производить математические операции с рациональными числами

    from fractions import Fraction
    
    a = Fraction(1, 2)
    b = Fraction(3, 4)
    
    print(a + b) # 5/4
    print(a - b) # -1/4
    print(a * b) # 3/8
    print(a / b) # 2/3
    print(a // b) # 0
    print(a % b) # 1/2

    Для того, чтобы найти ближайшее рациональное число со знаменателем не больше данного, используем метод Fraction.limit_denominator

    from fractions import Fraction
    
    a = Fraction(23.456)
    print(a.limit_denominator()) # 2932/125

    Функция complex

    Функция complex позволяет создать комплексное число из целого числа и строки. 

    Она имеет два параметра:

    Real - действительная часть, если данный параметр не передается, то он равен нулю

    Imag - Мнимая часть, если параметр не передается, то он так же равен нулю

    Строка, которая передается методу complex() должна иметь вид real + imagj или real + imagJ

    a = complex(2, -7)
    print(a) # (2-7j)
    
    b = complex('2+3j')
    print(b) # (2+3j)

    Для решения задачи, Зарегистрируйтесь или Войдите на сайт.