Найти тему
Будни питониста

Поддерживаемые типы чисел.

Python поддерживает следующие типы чисел: int, float, complex. Как вы уже знаете из предыдущих глав, это целые, вещественные и комплексные числа соответственно. При операции с числами нужно помнить, что результатом операции является число более сложного типа. Например, вы хотите умножить целое число на вещественное, тогда результатом будет вещественное число.

Самым простым числовым типом является целое число. Чуть сложнее - вещественное, поскольку у него есть дробная часть. Конечно же, самым сложным типом является комплексное число.

Создать числовой объект можно так же, как и объекть1 остальных типов:

>>> а = 5; b = 2

>>> с = а* b

С помощью префиксов Оb (ОB), 0о (0()) и 0х (или 0Х) можно указать числа в двоичной, восьмеричной и шестнадцатеричной системах счисления соответственно:

>>> а = 0b1110000

>>> b = 0o555

>>> с = 0xfff

Вещественные числа могут быть представлены в экспоненциальной форме - с точкой и буквой Е, например:

>>>

а 5е10

>>> b = 2.5е-5

Вещественные числа записываются в виде:

Вещественная_часть+мнимая_частьJ

Например:

>>> а = 3+4J

Для выполнения операций повышенной точности над вещественными числами нужно использовать модуль decimal, например:

>>> from decimal import Decimal

>>> Decimal("0.2") - Decimal("0.1") - Decimal("0.1") Decimal ('0.0')

Модуль Decimal реализует "Общую спецификацию десятичной арифметики" IBM. Само собой, разумеется, есть огромное число параметров конфигурации, которые выходят за рамки данного курса.

Новички в Python могут использовать модуль Decimal, чтобы избежать проблем с точностью, которые имеются при работе с типом данных float. Однако здесь важно понять, а нужна ли вам такая точность. Тут все зависит от вашего приложения. Если вы решаете научные или технические задачи, занимаетесь компьютерной графикой или решаете большинство задач научной природы, вам будет вполне достаточно обычного типа float. В мире существует очень мало вещей, для которых будет недостаточно обеспечиваемой этим типом данных 17-значной точности. Таким образом, крошечные ошибки, имеющиеся в вычислениях, просто не имеют значения. К тому же производительность вычислений с типом данных float (в отличие от модуля Decimal) - на высоте.

Исходя из всего сказанного, основное применение модуля decimal - в финансовых программах. В таких программах необходимо чрезвычайно точное вычисление и даже малейшие ошибки недопустимы. Таким образом, decimal позволяет избежать таких ошибок. Также объекты decimal принято использовать при взаимодействии с базами данных, особенно при доступе к финансовым данным.

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

>>> from fractions import Fraction

>>> Fraction("0.2") - Fraction("0.1") - Fraction("0.1") Fraction(0, 1)

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

>>> from fractions import Fraction

>>> а = Fraction(б, 4)

>>> b = Fraction(7, 12)

>>> print(a + b) 25/12

>>> print(a * b) 7/8

>>>#Получение числителя/знаменателя

>>> с = а * b

>>> c.numerator

7

>>> c.denominator

8

>>>#Конвертирование в float

>>> float(c)

0.875

>>>#Ограничение значения знаменателя

>>> print(c.limit denominator(8))

7/8

>>>#Преобразование из float в дробь

>>> х 5.75

>>> у= Fraction(*x.as_integer_ratio())

>>> у

Fraction(23, 4)

>>>