Найти тему

Базовые математические операции

В языке Python есть базовые математические операции, о них сегодня и пойдёт речь. Умение эффективно применять математические операции в рамках программирования – важный навык, который необходимо развивать, потому как с числами предстоит работать постоянно. Алгоритмы, функции, теория множеств, алгебра логики, комбинаторика и статистика — программисты пользуются ими регулярно и повсеместно. Но не всё так страшно. Да, понимание математики на высоком уровне помогает стать высококвалифицированным программистом, но оно не является для этого обязательным условием. Тем не менее базовые вещи знать придётся. А в основе всех мощных математических инструментов лежат простые и понятные операции.

Сложение (+)

И самая простая, и понятная из них — сложение. Никаких "подводных камней": берём два или более чисел, пишем между ними знак "+" и присваиваем результат выражения переменной (или сразу выводим сумму на экран):

Сложим несколько вещественных чисел и выведем их на экран без предварительной инициализации результирующей переменной:

-2

Вообще говоря, если хотя бы одно из слагаемых — число вещественное, то вещественным будет и весь результат.

-3

Вычитание (-)

Вычитание – это обратная операция сложению. Оператором выступает знак "-":

-4

С вещественными числами здесь та же ситуация: если хотя бы один операнд имеет тип float, то и результат будет float:

-5

Умножение (*)

Как и две предыдущие операции, умножение в Python не таит в себе никаких скрытых или неочевидных особенностей. Умножаем два или более чисел при помощи оператора "звёздочка" (*):

В этот раз обойдёмся без создания переменных

-6

Деление (/)

Сложение, вычитание и умножение тривиальны, а вот с делением не всё так просто. В Python существует три вида деления и столько же разных операторов. Начнём с истинного деления, за которое отвечает оператор "/". Его главным отличием является то, что, вне зависимости от типов операндов, будет возвращен вещественный результат (float).

-7

Делимое и делитель — int числа, а частое — float

-8

Этот вид деления наиболее близок к обычному и знакомому нам математическому. И здесь тоже нельзя делить на ноль:

-9

Целочисленное деление (//)

Оператор "//" возвращает int, если оба операнда — целые числа, и float — если хотя бы один операнд является вещественным числом. В любом из вариантов дробная часть будет отброшена, а результат округлён вниз.

-10

Видно, что результат округлился в меньшую сторону и остался целочисленным, поскольку и делимое, и делитель — int числа. При изменении любого из операндов на вещественное число, результат также изменится и станет float. Об округлении вниз важно помнить, когда работа идёт с отрицательными числами.

На ноль всё ещё нельзя делить!

Остаток от деления (%)

Остаток от деления ещё называют делением по модулю. Оператор "%" сначала делит, а затем возвращает остаток.

-11

На ноль всё ещё нельзя делить!

Остаток может не быть целочисленным:

-12

Но вся прелесть данного оператора заключается не в возвращаемом им значении остатка. Главная фишка деления по модулю в том, что с его помощью легко проверяется факт делимости одного числа на другое

А отсюда вытекают и проверки на чётность/нечётность:

-13
-14

Возведение в степень (**)

Нетипичный оператор для большинства других языков программирования. Тем он и удобен. Парная "звёздочка" (**) выполняет классическое математическое возведение числа "a" в степень "b":

-15

И показатель степени, и основание могут быть отрицательными:

-16

И дробными:

*степень 0.5 аналогична квадратному корню

-17

Операндов у возведения в степень также может быть несколько. В таком случае оператор "**" работает, как право-ассоциативный (т.е. операции выполняются справа-налево):

-18

*Сначала выполняется 2 ** 3, а затем уже 2 ** 8.

В завершении — про приоритет операций. Если в выражении используются разные операторы, то порядок их выполнения будет следующим:

1) возведение в степень;

2) умножение, деление, целочисленное деление и деление по модулю;

3) сложение и вычитание.