Справочник по Python · модуль 1 · данные и имена
Глава 1.7
Операторы
в Python
Операторы задают действие: сложить числа, сравнить значения, изменить переменную. Соберём уже знакомые знаки в систему и научимся читать выражение в том порядке, в котором его вычисляет Python.
- Категория
- Синтаксис и базовые концепции
- Уровень
- Начальный
- Связанные темы
- Типы данных, присваивание, сравнения
- Зачем это знать
- Читать выражения и выбирать подходящее действие
§1Оператор и операнды
Оператор — знак или слово, которое указывает 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 |
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Операторы присваивания
Составное присваивание берёт текущее значение переменной, выполняет действие и записывает результат обратно.
score = 10 score += 5 # score = score + 5 score *= 2 # score = score * 2 score -= 3 # score = score - 3 print(score) # 27
Такие формы существуют для основных арифметических операций: +=, -=, *=, /=, //=, %= и **=.
§5Унарные операторы
Большинство операторов стоят между двумя значениями. Унарный оператор работает с одним: - меняет знак числа, а + оставляет его положительным.
temperature = 7 print(-temperature) # -7 print(+temperature) # 7
§6Приоритет и скобки
Python соблюдает привычный порядок: сначала скобки, затем степень, умножение и деление, после них сложение и вычитание. Операторы одного уровня выполняются слева направо, кроме степени.
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 / 0 | ZeroDivisionError | проверить делитель до операции |
2 + 3 * 4, ожидая 20 | получится 14: умножение выполняется первым | (2 + 3) * 4 |
"5" + 2 | TypeError: строку и число сложить нельзя | 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, а операторы присваивания записывают результат в переменную. Порядком вычисления управляет приоритет, а явные скобки делают формулу понятнее.