На этом шаге мы приведем общие сведения о числах и правилах их записи.
Python 3 поддерживает следующие числовые типы:
Операции над числами разных типов возвращают число, имеющее более сложный тип из типов, участвующих в операции. Целые числа имеют самый простой тип, далее идут вещественные числа и самый сложный тип - комплексные числа. Таким образом, если в операции участвуют целое число и вещественное, то целое число будет автоматически преобразовано в вещественное число, а затем произведена операция над вещественными числами. Результатом этой операции будет вещественное число.
Создать объект целочисленного типа можно обычным способом:
>>> x = 0
>>> y = 10
>>> z = -80
>>> x, y, z
(0, 10, -80)
Кроме того, можно указать число в двоичной, восьмеричной или шестнадцатеричной форме. Такие числа будут автоматически преобразованы в десятичные целые числа.
>>> 0b11111111, 0B101101
(255, 45)
>>> 0o7, 0O12, 0o777, 0O7, 0o12, 0O777
(7, 10, 511, 7, 10, 511)
>>> 0X9, 0xA, 0x10, 0xFFF, 0xfff
(9, 10, 16, 4095, 4095)
>>> 10., .14, 3.14, 11E20, 2.5e-12
(10.0, 0.14, 3.14, 1.1e+21, 2.5e-12)
При выполнении операций над вещественными числами следует учитывать ограничения точности вычислений. Например, результат следующей операции может показаться странным:
>>> 0.3 - 0.1 - 0.1 - 0.1
-2.7755575615628914e-17
Ожидаемым был бы результат 0.0, но, как видно из примера, мы получили совсем другое значение. Если необходимо производить операции с фиксированной точностью, то следует использовать модуль decimal:
>>> from decimal import Decimal >>> Decimal('0.3') - Decimal('0.1') - Decimal('0.1') - Decimal('0.1') Decimal('0.0')
Кроме того, можно использовать дроби, поддержка которых содержится в модуле fractions. При создании дроби можно как указать два числа: числитель и знаменатель, так и одно число или строку, содержащую число, которое будет преобразовано в дробь.
Для примера создадим несколько дробей. Вот так формируется дробь 4/5:
>>> from fractions import Fraction >>> Fraction(4, 5) Fraction(4, 5)
А вот так - дробь 1/2, причем можно сделать это тремя способами:
>>> Fraction(1, 2) Fraction(1, 2) >>> Fraction("0.5") Fraction(1, 2) >>> Fraction(0.5) Fraction(1, 2)
Над дробями можно производить арифметические операции, как и над обычными числами:
>>> Fraction(9, 5) - Fraction(2, 3) Fraction(17, 15) >>> Fraction("0.3") - Fraction("0.1") - Fraction("0.1") - Fraction("0.1") Fraction(0, 1) >>> float(Fraction(0, 1)) 0.0
Комплексные числа записываются в формате:
<Вещественная часть>+<Мнимая часть>J
Здесь буква J может стоять в любом регистре. Примеры комплексных чисел:
>>> 2 + 5J, 8j
((2+5j), 8j)
На следующем шаге мы рассмотрим встроенные функции и методы для работы с числами.