Математические (арифметические) операторы. Примеры
Содержание
- 1. Какие операторы (операции) используются для проведения вычислений в Python?
- 2. Для каких категорий числовых типов можно применять математические операторы?
- 3. Каким образом вычисляется тип результата операции в случае если операция есть бинарной и содержит операнды различных типов?
- 4. Операция возведения в степень **. Пример
- 5. Операции сложения (+), вычитания (–). Примеры
- 6. Операции умножения (*) и обычного деления (/). Пример
- 7. Особенности операции деления / для различных типов чисел. Пример
- 8. Операция деления с округлением вниз //. Пример
- 9. Операция «унарный» минус (–x). Пример
- 10. Операция взятия остатка от деления (%). Пример
- Связанные темы
Поиск на других ресурсах:
1. Какие операторы (операции) используются для проведения вычислений в Python?
Язык Python имеет ряд математических (арифметических) операторов для проведения вычислений в арифметических выражениях. Перечень этих операций в порядке убывания приоритета следующий:
- ** – возведение в степень;
- –x – унарный минус;
- /, // – обычное деление, деление с округлением вниз (одинаковый приоритет);
- % – остаток от деления;
- * – умножение;
- – – вычитание;
- + – сложение.
⇑
2. Для каких категорий числовых типов можно применять математические операторы?
Математические операторы можно применять для любых числовых типов, а именно:
- целочисленных (типов);
- вещественных;
- комплексных.
⇑
3. Каким образом вычисляется тип результата операции в случае если операция есть бинарной и содержит операнды различных типов?
Каждая операция возвращает результат некоторого типа. Если операция бинарная, то тип результата зависит от типа операндов.
Здесь возможны два случая:
- операнды имеют одинаковый тип. В этом случае тип результата операции есть этот же тип. Исключение составляет операция деления / целочисленных операндов. Если оба операнда целого типа, то результат операции деления будет иметь вещественый тип (число с плавающей запятой);
- операнды имеют разные типы. В этом случае тип результата операции будет определяется в следующей последовательности: сначала тип обоих операндов приводится к типу более сложного операнда; затем для операндов применяется математика, специфическая для этого типа.
Интерпретатор Python определяет сложность типов в такой последовательности (от простого к более сложному):
- целый тип;
- вещественный тип;
- комплексный тип.
В Python 2.6 (при необходимости) обычные целые числа могут быть преобразованы в длинные целые числа. В Python 3.0 и выше этого ранжирования уже нет и все целые числа представлены как длинные целые числа.
Пример. При использовании двух операндов разных типов возможны следующие ситуации.
Если один операнд целого типа, а другой вещественного типа, то тип результата будет вещественный тип (так как вещественный тип считается более сложным).
Если один операнд вещественного типа, а другой комплексного типа, то результат будет комплексного типа.
⇑
4. Операция возведения в степень **. Пример
Операция возведения в степень обозначается ** и используется для операндов любых числовых типов (целочисленных, вещественных, комплексных).
# Операция ** - возведение в степень # 1. Для целых чисел a = 3 b = 2 c = a**b # c = 9 print("c = ", c) # 2. Для вещественных чисел a = 2.5 b = 3 c = a**b # c = 15.625 print('c = ', c) # 3. Для комплексных чисел x = 1 - 2j y = -4j z = x**y # z = (-0.011895629765035814+0.0009211666704635043j) print('z = ', z) # 4. В 16-й системе исчисления a = 0xA1 b = 0x03 c = a**b # c = 4173281 - результат в 10-й системе исчисления d = hex(c) # d = 0x3fade1 - результат в 16-й системе исчисления print('c = ', c) print('d = ', d) # 5. В 8-й системе исчисления a = 0o356 b = 0o2 c = a**b # c = 56644 - результат в 10-й системе исчисления d = oct(c) # d = 0o156504 - результат в 8-й системе исчисления print('c = ', c) print('d = ', d) # 6. В 2-й системе исчисления a = 0b101 b = 0b110 c = a**b # c = 15625 - результат в 10-й системе исчисления d = bin(c) # d = 0b11110100001001 - результат в 2-й с/и print('c = ', c) print('d = ', d)
⇑
5. Операции сложения (+), вычитания (–). Примеры
Операции сложения + и вычитания – являются бинарными и используются для любого числового типа.
# Операция сложения +, вычитания - # 1. Сложение, вычитание целых чисел a=3 b=5 c = a+b #c = 8 d = a-b # d = -2 # 2. Сложение, вычитание целого и вещественного чисел a = 2.5 b = 7 c = a + b # c = 9.5 - результат - вещественное число d = a - b # d = -4.5 - результат - вещественное число # 3. Сложение, вычитание вещественных чисел x = 8.99902 y = 9.112356 z = x+y # z = 18.111376 v = x-y # v = -0.11333600000000033 # 4. Сложение, вычитание комплексных чисел, результат - комплексное число a = 7+8j b = 3-2j c = a + b # c = (10+6j) d = a - b # d = (4+10j) # 5. Сложение, вычитание чисел в шестнадцатеричной системе исчисления a = 0xFF5 b = 0xC9 c = a + b # c = 4286 - в десятичной системе исчисления d = a - b # d = 3884 # 6. Сложение, вычитание чисел в восьмеричной системе исчисления a = 0o730 b = 0o50 c = a + b # c = 512 d = a - b # d = 432 # 7. Сложение, вычитание чисел в двоичной системе исчисления a = 0b0110110 b = 0b0001010 c = a + b # c = 64 - результат в десятичной системе исчисления d = a - b # d = 44
⇑
6. Операции умножения (*) и обычного деления (/). Пример
Операции умножения * и деления / есть бинарными. Эти операции используются с операндами любого числового типа (целого, вещественного, комплексного).
# Операции умножения * и обычного деления / # 1. Для целых чисел a = 7 b = 4 c = a*b # c = 28 - целый результат d = a/b # d = 1.75 - вещественный результат # 2. Для вещественных чисел a = 7.5 b = 3.2 c = a*b # c = 24.0 - вещественный результат d = a/b # d = 2.34375 # 3. Для комплексных чисел x = 2 + 2j y = 3 - 1j z = x*y # z = (8+4j) v = x/y # v = (0.4+0.7999999999999999j) # 4. В 16-й системе исчисления a = 0xaff b = 0x5b c = a*b # c = 256165 - результат в 10-й системи исчисления d = a/b # d = 30.934065934065934 - вещественное число # 5. В 8-й системе исчисления a = 0o356 b = 0o2 c = a*b # c = 476 d = a/b # d = 119.0 # 6. В 2-й системе исчисления a = 0b111 # a = 35 b = 0b101 # b = 5 c = a*b # c = 35 - результат в 10-й системе исчисления d = a/b # d = 1.4 - результат в 2-й системе исчисления
⇑
7. Особенности операции деления / для различных типов чисел. Пример
Если в операции деления / один из операндов является вещественного типа, то результат будет также вещественного типа (дробное число).
При использовании операции деления для целочисленных операндов в таких языках как C/C ++, C#, Java результат операции будет целочисленным. В версиях Python 2.6 и ниже операция деления целочисленных операндов также дает целочисленный результат, то есть после деления
a = 9/6 # a = 1 - версии Python 2.6 и ниже
переменная a = 1.
В версии Python 3.0 и выше результат операции деления / всегда будет вещественное число (независимо от типов операндов), то есть после деления
a = 9/6 # a = 1.5 - версии Python 3.0 и выше
переменная a имеет вещественный тип (a = 1.5). Если в версии Python 3.0 и выше при делении целочисленных операндов нужно вернуть целое число, то для этого используется операция деления с округлением вниз // (см. п. 8).
Пример.
# Для целых чисел (целочисленных операндов) a = 7 b = 4 c = a/b # c = 1.75 - результат вещественный a = 9 b = 3 c = a/3 # c = 3.0 - результат также вещественный
⇑
8. Операция деления с округлением вниз //. Пример
В версиях Python 2.2 и выше введена операция // деления с округлением вниз, которая в случае целочисленных операндов возвращает результат целого типа. В версиях Python 3.0 и выше эта операция заменяет целочисленное деление с возвращением целочисленного результата.
Пример.
# Операция деления // с округлением вниз, Python 3.7.0 # 1. Для целых чисел a = 8 b = 5 c = a // b # c = 1 a = 17 b = 3 c = a//b # c = 5 - целый результат с округлением вниз # 2. Для вещественного и целого числа x = 6.0 y = 2 z = x//y # z = 3.0 - вещественный результат # 3. Для вещественных чисел x = 5.5 y = 2.5 z = x//y # z = 2.0 - вещественный результат с округлением вниз x = 13.7 y = 2.3333 z = x//y # z = 5.0 - вещественный результат с округлением вниз
⇑
9. Операция «унарный» минус (–x). Пример
Операция «унарный минус» делает из положительного числа отрицательное, а из отрицательного числа положительное. Операция применяется к любому числовому типу.
# Унарный минус -x a = 15 b = -a # b = -15 - унарный минус a = -12.35 b = -a # b = 12.35 a = 0xFF b = -a # b = -255 - десятичная система исчисления c = hex(b) # c = -0xff a = 0o775 # восьмеричная система исчисления b = -a c = oct(b) # c = -0o775 a = 0b1111001 b = -a # b = -121 - десятичная система исчисления c = bin(b) # c = -0b1111001 - двоичная система исчисления # Комплексное число z = 2 - 8j z = -z # z = (-2+8j)
⇑
10. Операция взятия остатка от деления (%). Пример
# Операция взятия остатка от деления # 1. Для целых чисел a = 7 b = 4 c = a%b # c = 3 a = 5 b = 9 c = a % b # c = 5 # 2. Для вещественных чисел a = 5.5 b = 2.1 c = a%b # c = 1.2999999999999998 a = -8.1 b = -1.01 c = a%b # c = -0.019999999999999574 # 3. Для шестнадцатеричных чисел a = 0xA8 b = 0x0F c = a%b # c = 3 - результат в десятичной системе d = hex(c) # d = 0x3 - результат в 16-й системе # 4. Для восьмеричных чисел a = 0o15 b = 0o25 c = a % b # c = 13 d = oct(c) # d = 0o15 # 5. Для двоичных чисел a = 0b10011 b = 0b101 c = a%b # c = 4 d = bin(c) # d = 0b100
⇑
Связанные темы
- Операторы (операции) для работы с числовыми объектами. Таблица приоритетности операторов
- Смешивание типов. Преобразование типов в операторах
- Операторы сравнения
⇑