Осваиваем Python: математические операции
В этом руководстве мы будем работать с двумя типами данных в Python – целыми числами (integer) и числами с плавающей точкой (floats):
- Целые – числа без дробной части, которые могут быть положительными, отрицательными или нулём (…, -1, 0, 1, …).
- С плавающей точкой – это числа, содержащие десятичную точку (например, 9.0 или -2.25).
В этой статье будут описаны операции с числовыми типами данных в Python.
Математические операторы Python 3
Оператор – это символ, которая обозначает операцию. Например, в математике знак плюса или + – это оператор сложения.
Мы рассмотрим схожие операторы, которые перешли в Python из математики. Но другие операторы специфичны именно для программирования.
Ниже представлена таблица с кратким обзором математических операторов, доступных в Python.
Операция | Возвращаемое значение |
x + y | Сумма x и y. |
x - y | Разность x и y. |
-x | Изменение знака x. |
+x | Тождественность x. |
x * y | Произведение x и y. |
x / y | Частное от деления x на y. |
x // y | Частное от целочисленного деления x на y. |
x % y | Остаток от деления x / y. |
x ** y | x в степени y. |
Сумма в питоне и разность в питоне
В Python операторы суммы и разности выполняют те же операции, что и в математике. Поэтому вы можете использовать этот язык программирования как калькулятор.
Рассмотрим некоторые примеры. Начнём с целых чисел:
print(1 + 5)
Вывод
6
Вместо передачи целых чисел напрямую в функцию print
мы можем инициализировать переменные для этих значений:
a = 88
b = 103
print(a + b)
Вывод
191
Целые числа могут быть как положительными, так и отрицательными. Поэтому можно добавлять отрицательные числа к положительным:
c = -36
d = 25
print(c + d)
Вывод
-11
Прибавление работает аналогично и с числами с плавающей запятой:
e = 5.5
f = 2.5
print(e + f)
Вывод
8.0
Синтаксис разности тот же, что и для прибавления, за исключением того, что вместо оператора сложения (+
) необходимо использовать оператор вычитания (-
):
g = 75.67
h = 32
print(g - h)
Вывод
43.67
В этом примере мы вычитаем целое число из числа с плавающей точкой. Python возвратит число с плавающей точкой, если хотя бы одно из чисел выражения является числом с плавающей точкой.
Унарные арифметические операции Python
Унарное математическое выражение состоит из одного элемента. Знаки плюса и минуса в питоне могут быть использованы как единичный оператор, чтобы вернуть тождественное значение (+) или сменить знак числа (-).
Знак плюса означает тождественное значение. Мы можем использовать его с положительными значениями:
i = 3.3
print(+i)
Вывод
3.3
Когда мы используем знак плюса с отрицательным значением, он также вернёт значение тождественное данному. В этом случае он вернёт отрицательное значение:
j = -19
print(+j)
Вывод
-19
При использовании с отрицательным значением знак плюса возвращает то же отрицательное значение.
Минус (в отличие от знака плюса) изменяет знак числа. Поэтому при передаче положительного числа мы получим отрицательное значение:
i = 3.3
print(-i)
Вывод
-3.3
А когда мы используем минус в качестве унарного оператора с отрицательным значением, будет возвращено положительное число:
j = -19
print(-j)
Вывод
19
Унарные арифметические операторы возвращают тождественное значение в случае с +i, или противоположное по знаку число в случае с -i.
Умножение и деление в питоне
Оператор, которые мы будем использовать в Python для умножения «*», а для деления «/». Пример умножения двух чисел с плавающей точкой в Python:
k = 100.1
l = 10.1
print(k * l)
Вывод
1011.0099999999999
Когда вы выполняете деление в Python 3, частное всегда будет числом с плавающей точкой, даже если вы используете два целых числа:
m = 80
n = 5
print(m / n)
Вывод
16.0
Это одно из наиболее существенных отличий Python 2 от Python 3. В Python 3 результатом будет дробное число. Поэтому, когда вы используете оператора «/» для деления 11 на 2, возвращено будет 5.5. В Python 2 возвращаемое значение деления 11 / 2 было 5.
В Python 2 оператор «/» выполняет целочисленное деление, где частное x, а возвращаемое число – это наибольшее целое число, меньшее или равное x. Если вы выполните пример, приведённый выше, в Python 2, то получите 16 без десятичной точки.
Целочисленное деление python 3 использует оператор «//». Выражение 100 // 40 вернёт значение 2.
Деление с остатком Python
Оператор % используется для деления по модулю, и возвращает остаток от деления, а не частное. Это полезно, например, для нахождения множителей числа.
Деление по модулю Python (с остатком) - пример:
o = 85
p = 15
print(o % p)
Вывод
10
В этом примере 85 делится на 15. Результат – 5 с остатком 10. Значение 10
выводится, поскольку оператор возвращает остаток от деления.
Если мы используем два числа с плавающей точкой для деления по модулю, число с плавающей точкой будет возвращено в качестве остатка:
q = 36.0
r = 6.0
print(o % p)
Вывод
0.0
В приведенном выше примере 36.0 делится на 6.0 без остатка, поэтому возвращается значение 0.0.
Возведение в степень Python
Оператор «**» в Python используется для возведения числа, расположенного слева от оператора в степень, указанную справа. То есть, в выражении 5 ** 3, число 5 возводится в третью степень.
В математике часто используется выражение 5³. То есть 5 умножается на себя три раза. В Python мы получим тот же результат (125) выполнив 5 ** 3 или 5 * 5 * 5.
Пример с переменными:
s = 52.25
t = 7
print(s ** t)
1063173305051.292
Возведение числа с плавающей точкой 52.25 в степень 7 с помощью оператора ** приводит к выводу большого числа с плавающей точкой.
Приоритет операторов
Операторы Python выполняются в порядке приоритета. Посмотрим на следующее выражение:
u = 10 + 10 * 5
Умножение выполняется первым. Поэтому, если мы вызовем метод print(u)
, то получим следующее значение:
Вывод
60
Это потому, что 10 * 5
равно 50
, а затем мы прибавляем 10
, чтобы получить 60
.
Если нужно было сложить 10
и 10
, и умножить сумму на 5
, то пришлось бы использовать скобки, как в математике:
u = (10 + 10) * 5
print(u)
Вывод
100
Операторы присваивания Python
Оператор «=» присваивает значение, расположенное справа, переменной слева. Например, v = 23 присваивает значение числа 23 переменной v.
В программировании часто используют составные операторы присваивания. Они соединяют арифметический оператор с оператором «=». Поэтому для сложения мы используем оператор «+» с оператором «=», чтобы получить составной оператор «+=». Пример:
w = 5
w += 1
print(w)
Вывод
6
Сначала мы задаём переменной w
значение 5
. Затем используем составной оператор присваивания +=
, чтобы прибавить число справа, к переменной, расположенной слева, и присвоить результат переменной w
.
Составные операторы присваивания часто используются в циклах for:
for x in range (0, 7):
x *= 2
print(x)
Вывод
0
2
4
6
8
10
12
При помощи for можно автоматизировать процесс использования оператора «*=»
. Он умножает переменную w
на число 2
, а затем присваивает полученный результат переменной w
для следующей итерации цикла.
В Python предусмотрен составной оператор присваивания для каждой арифметической операции:
y += 1 # добавить число и присвоить результат
y -= 1 # отнять число и присвоить результат
y *= 2 # умножить на число и присвоить результат
y /= 3 # разделить на число и присвоить результат
y // = 5 # разделить без остатка на число и присвоить результат
y **= 2 # возвести в степень и присвоить результат
y %= 3 # вернуть остаток от деления и присвоить результат
Составные операторы присваивания полезны в тех случаях, когда переменная должна увеличиваться или уменьшаться с помощью инкремента. А также когда необходимо автоматизировать некоторый процесс в создаваемой программе.
Заключение
В этой статье рассмотрены операторы, которые используются для математических операций с целыми и дробными десятичными числами.