На этом шаге мы перечислим эти операторы и рассмотрим особенности их использования.
Производить операции над числами позволяют следующие операторы:
>>> 10 + 5 # Целые числа 15 >>> 12.4 + 5.3 # Вещественные числа 17.7 >>> 10 + 22.4 # Целое и вещественное числа 32.4
>>> 10 - 5 # Целые числа 5 >>> 12.4 - 5.2 # Вещественные числа 7.2 >>> 12 - 5.2 # Целое и вещественное числа 6.8
>>> 10 * 5 # Целые числа 50 >>> 12.4 * 5.3 # Вещественные числа 65.72 >>> 10 * 22.4 # Целое и вещественное числа 224.0
>>> 10 / 5 # Целые числа 2.0 >>> 10 / 3 # Целые числа 3.3333333333333335 >>> 10.0 / 5.0 # Вещественные числа 2.0 >>> 10.0 / 3.0 # Вещественные числа 3.3333333333333335 >>> 10 / 5.0 # Деление целого на вещественное 2.0 >>> 10.0 / 5 # Деление вещественного на целое 2.0
>>> 10 // 5 # Деление целых чисел без остатка 2 >>> 10 // 3 # Деление целых чисел с остатком 3 >>> 10.0 // 5.0 # Вещественные числа 2.0 >>> 10.0 // 3.0 # Вещественные числа 3.0 >>> 10 // 5.0 # Деление целого на вещественное 2.0 >>> 10 // 3.0 # Деление целого на вещественное 3.0 >>> 10.0 // 5 # Деление вещественного на целое 2.0 >>> 10.0 // 3 # Деление вещественного на целое 3.0
>>> 10 % 5 # Деление целых чисел без остатка 0 >>> 10 % 3 # Деление целых чисел с остатком 1 >>> 10.0 % 5.0 # Вещественные числа 0.0 >>> 10.0 % 3.0 # Вещественные числа 1.0 >>> 10 % 5.0 # Целые и вещественные числа 0.0 >>> 10 % 3.0 # Целые и вещественные числа 1.0 >>> 10.0 % 5 # Вещественные и целые числа 0.0 >>> 10.0 % 3 # Вещественные и целые числа 1.0
>>> 10 ** 2, 10.0 ** 2
(100, 100.0)
>>> +10, +10.0, -10, -10.0 -(-10), -(-10.0)
(10, 10.0, -10, 0.0, 10.0)
Как видно из примеров, операции над числами разных типов возвращают число, имеющее более сложный тип из типов, участвующих в операции. Целые числа имеют самый простой тип, далее идут вещественные числа и самый сложный тип - комплексные числа. Таким образом, если в операции участвуют целое число и вещественное, то целое число будет автоматически преобразовано в вещественное число, а затем произведена операция над вещественными числами. Результатом этой операции станет вещественное число.
При выполнении операций над вещественными числами следует учитывать ограничения точности вычислений. Например, результат следующей операции может показаться странным:
>>> 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')
На следующем шаге мы рассмотрим двоичные операторы.