Модуль 1 · Данные и имена

Справочник по Python · модуль 1 · данные и имена

Глава 1.7

1.7

Операторы
в Python

Операторы задают действие: сложить числа, сравнить значения, изменить переменную. Соберём уже знакомые знаки в систему и научимся читать выражение в том порядке, в котором его вычисляет Python.

Категория
Синтаксис и базовые концепции
Уровень
Начальный
Связанные темы
Типы данных, присваивание, сравнения
Зачем это знать
Читать выражения и выбирать подходящее действие

§1Оператор и операнды

Оператор — знак или слово, которое указывает Python, какое действие выполнить. Данные, над которыми выполняется действие, называются операндами.

Pythonоператор между операндами
price + delivery
      # + — оператор
# price и delivery — операнды

Один и тот же оператор может работать по-разному с разными типами. 2 + 3 складывает числа, а "Py" + "thon" соединяет строки. Поэтому при чтении выражения смотрите не только на знак, но и на тип значений рядом с ним.

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

ОператорДействиеПример
+сложение10 + 3 → 13
-вычитание10 - 3 → 7
*умножение10 * 3 → 30
/обычное деление10 / 3 → 3.333…
//деление без дробной части10 // 3 → 3
%остаток от деления10 % 3 → 1
**возведение в степень10 ** 3 → 1000
main.pyарифметика
a = 10
b = 3

print(a + b)   # 13
print(a / b)   # 3.3333333333333335
print(a ** b)  # 1000

Три вида деления требуют отдельного разбора, поэтому следующая глава целиком посвящена операторам /, // и %.

§3Операторы сравнения

Сравнение не изменяет значения. Оно отвечает на вопрос и возвращает True или False.

ОператорВопросПример
==равны ли значения?5 == 5 → True
!=различаются ли значения?5 != 3 → True
>, <больше или меньше?7 > 4 → True
>=, <=включается ли граница?18 >= 18 → True
Не путайте = и ==

= присваивает значение переменной, а == сравнивает два значения. В вопросе «равно ли?» всегда два знака равенства.

§4Операторы присваивания

Составное присваивание берёт текущее значение переменной, выполняет действие и записывает результат обратно.

Pythonкороткая запись
score = 10
score += 5   # score = score + 5
score *= 2   # score = score * 2
score -= 3   # score = score - 3

print(score)  # 27

Такие формы существуют для основных арифметических операций: +=, -=, *=, /=, //=, %= и **=.

§5Унарные операторы

Большинство операторов стоят между двумя значениями. Унарный оператор работает с одним: - меняет знак числа, а + оставляет его положительным.

Pythonодин операнд
temperature = 7

print(-temperature)  # -7
print(+temperature)  # 7

§6Приоритет и скобки

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

main.pyпорядок вычисления
print(2 + 3 * 4)    # 14
print((2 + 3) * 4)  # 20
print(2 ** 3 ** 2) # 512: 2 ** (3 ** 2)

Если порядок трудно увидеть сразу, добавьте скобки. Они не только управляют вычислением, но и показывают читателю замысел формулы.

§7Какие группы будут дальше

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

  • and, or, not объединяют логические проверки;
  • in и not in проверяют наличие элемента в коллекции;
  • &, |, ^, <<, >> работают с двоичной записью чисел;
  • условное выражение значение if условие else другое_значение выбирает одно из двух значений.

Сейчас достаточно арифметики, сравнений и присваивания. Остальные группы получат собственные главы.

§8Частые ошибки

Что написаноЧто произойдётКак правильно
x = 5 вместо сравнениязначение будет присвоено, вопрос не получитсяx == 5
2 ^ 3 для степениполучится 1: знак ^ означает другую операциюстепень записывается как 2 ** 3
10 / 0ZeroDivisionErrorпроверить делитель до операции
2 + 3 * 4, ожидая 20получится 14: умножение выполняется первым(2 + 3) * 4
"5" + 2TypeError: строку и число сложить нельзяint("5") + 2 или "5" + str(2)

§9Проверьте себя

Что в записи total = price + delivery является оператором?

= — оператор присваивания, + — оператор сложения. total, price и delivery — имена переменных.

Что выведет print(3 + 2 ** 2)?

7. Сначала выполняется степень 2 ** 2, затем сложение.

Как увеличить count на единицу?

count += 1. Это сокращение для count = count + 1.

§10Шпаргалка

Арифметика+ - * / // % **
Сравнение== != > < >= <=
Присваивание= += -= *= /= //= %= **=
Приоритет() → ** → * / // % → + -

Итог главы

Оператор задаёт действие над данными. Для первых программ нужны три основные группы: арифметические операторы вычисляют, операторы сравнения отвечают True или False, а операторы присваивания записывают результат в переменную. Порядком вычисления управляет приоритет, а явные скобки делают формулу понятнее.

Глава 1.7 · Операторы в Python · Справочник по Python Автор: Макаров Максим Николаевич