Глава 5 · Давайте поиграем с числами!
Унарные операторы
Один операнд, а не два — и одна очень известная ловушка приоритета операций.
-5 — это не «минус пять как отдельное число», а применение
унарного оператора - к числу 5.
Унарный — значит «с одним операндом», в отличие от привычного бинарного вычитания
(8 - 3).
unarnyj.py
x = 5
print(-x) # -5 — унарный минус меняет знак
print(+x) # 5 — унарный плюс почти ничего не делает (редко используется)
print(8 - 3) # 5 — а это бинарное вычитание, два операнда
Классическая ловушка: -2 ** 2
Многие ожидают -4, но подозревают 4
(как будто сначала считается (-2) ** 2). Проверим:
lovushka.py
print(-2 ** 2) # -4
print((-2) ** 2) # 4 — другое число!
()
скобки — всегда первыми
**
возведение в степень
+x -x
унарный плюс/минус
* / // %
умножение, деление, целочисленное деление, остаток
+ -
сложение, вычитание
-2 ** 2
↓
-(2 ** 2)
↓
-(4)
↓
-4
** — единственное исключение такого рода
У всех остальных операторов приоритет ведёт себя ожидаемо. Именно из-за этой особенности
** опытные разработчики почти всегда пишут (-2) ** 2 явно, скобками — даже когда приоритет формально понятен.Практика: унарные операторы
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки