Python - Арифметические операторы

Добро пожаловать, стремящиеся программисты! Сегодня мы погружаемся в мир арифметических операторов Python. Не волнуйтесь, если вы никогда не писали ни одной строки кода - мы начнем с самого начала и постепенно будем развиваться. К концу этого урока вы будете выполнять вычисления на уровне профессионала!

Python - Arithmetic Operators

Арифметические операторы Python

Арифметические операторы в Python похожи на базовые математические операции, которые вы изучали в школе, но теперь они стали вашими инструментами для выполнения вычислений на компьютерах. Начнем с самых простых:

Сложение (+)

Оператор сложения представлен знаком плюс (+). Он работает именно так, как вы ожидаете:

result = 5 + 3
print(result)  # Вывод: 8

В этом примере мы складываем 5 и 3, и сохраняем результат в переменной с именем result. Затем мы выводим его. Просто, правда?

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

Вычитание работает аналогично, используя знак минус (-):

result = 10 - 4
print(result)  # Вывод: 6

Здесь мы вычитаем 4 из 10. Проще простого!

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

Для умножения мы используем звездочку (*):

result = 6 * 7
print(result)  # Вывод: 42

В этом случае мы умножаем 6 на 7. И да, ответ на вопрос о жизни, вселенной и всем остальном действительно равен 42!

Деление (/)

Деление использует слеш (/):

result = 20 / 5
print(result)  # Вывод: 4.0

Заметьте, что результат равен 4.0, а не просто 4. В Python 3 деление с / всегда возвращает число с плавающей запятой (десятичное).

Полное деление (//)

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

result = 17 // 5
print(result)  # Вывод: 3

17 делить на 5 дает 3 с остатком 2. Полное деление дает нам только 3.

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

Говоря о остатках, оператор остатка дает нам именно это:

result = 17 % 5
print(result)  # Вывод: 2

Это дает нам остаток от деления 17 на 5, что равно 2.

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

И наконец, у нас есть возведение в степень, представленное двумя звездочками:

result = 2 ** 3
print(result)  # Вывод: 8

Это вычисляет 2 в степени 3, что равно 8.

Различные арифметические операторы в Python

Подведем итог всем этим операторам в удобной таблице:

Оператор Название Пример
+ Сложение 5 + 3 = 8
- Вычитание 10 - 4 = 6
* Умножение 6 * 7 = 42
/ Деление 20 / 5 = 4.0
// Полное деление 17 // 5 = 3
% Остаток от деления 17 % 5 = 2
** Возведение в степень 2 ** 3 = 8

Приоритет и ассоциативность арифметических операторов Python

А теперь, что происходит, когда мы используем несколько операторов в одном выражении? Вот тут в игру вступают приоритет и ассоциативность.

Приоритет операторов

Приоритет операторов определяет порядок, в котором выполняются операции. Это похоже на порядок операций, который вы изучали в математике (помните PEMDAS?). В Python приоритет от высокого к низкому:

  1. ** (Возведение в степень)
  2. *, /, //, % (Умножение, Деление, Полное деление, Остаток от деления)
  3. +, - (Сложение, Вычитание)

Посмотрим на пример:

result = 2 + 3 * 4
print(result)  # Вывод: 14

Здесь сначала выполняется умножение (3 * 4), а затем сложение (2 + 12).

Если мы хотим изменить порядок, можем использовать скобки:

result = (2 + 3) * 4
print(result)  # Вывод: 20

Теперь сначала выполняется сложение, а затем умножение.

Ассоциативность

Ассоциативность вступает в игру, когда у вас есть несколько операторов с одинаковым приоритетом. В Python большинство операторов являются левыми ассоциативными, что означает, что они вычисляются слева направо.

result = 20 - 5 - 3
print(result)  # Вывод: 12

Это вычисляется как (20 - 5) - 3, а не 20 - (5 - 3).

Исключением является оператор возведения в степень (**), который является правым ассоциативным:

result = 2 ** 3 ** 2
print(result)  # Вывод: 512

Это вычисляется как 2 (3 2), а не (2 3) 2.

Арифметика комплексных чисел

Python также поддерживает комплексные числа, которые являются числами с вещественной и мнимой частью. Они записываются с 'j' или 'J' для обозначения мнимой части:

z1 = 2 + 3j
z2 = 1 - 1j

# Сложение
result = z1 + z2
print(result)  # Вывод: (3+2j)

# Вычитание
result = z1 - z2
print(result)  # Вывод: (1+4j)

# Умножение
result = z1 * z2
print(result)  # Вывод: (5+1j)

# Деление
result = z1 / z2
print(result)  # Вывод: (0.5+2j)

Комплексные числа следуют тем же арифметическим правилам, что и вещественные числа, с добавлением правила, что i^2 = -1 (где i - это мнимая единица, представленная j в Python).

И вот и все! Вы только что сделали первые шаги в мир арифметики Python. Помните, программа написана как новый язык - это требует практики. Так что не бойтесь экспериментировать с этими операторами, попробуйте различные комбинации и посмотрите, что получится. Счастливого кодирования!

Credits: Image by storyset