Операторы в Python: Арифметические, сравнения, логические и битовые
Типы операторов
Операторы — конструкции для манипуляции значениями операндов. В выражении 4 + 5 = 9 числа 4 и 5 — операнды, + — оператор.
Python поддерживает:
- Арифметические операторы
- Операторы сравнения (реляционные)
- Операторы присваивания
- Логические операторы
- Битовые операторы
- Операторы принадлежности (membership)
- Операторы тождества (identity)
Арифметические операторы
Пусть a = 10, b = 20:
| Оператор | Описание | Пример |
|---|---|---|
| + | Сложение | a + b = 30 |
| - | Вычитание | a – b = -10 |
| * | Умножение | a * b = 200 |
| / | Деление | b / a = 2 |
| % | Остаток от деления | b % a = 0 |
| ** | Возведение в степень | a**b = 10²⁰ |
| // | Целочисленное деление (floor division) — дробная часть отбрасывается. Если операнд отрицательный, результат округляется к минус бесконечности | 9//2 = 4, 9.0//2.0 = 4.0, -11//3 = -4, -11.0//3 = -4.0 |
Операторы сравнения
Сравнивают значения по обе стороны, возвращают True/False. a = 10, b = 20:
| Оператор | Описание | Пример |
|---|---|---|
| == | Равно — true, если значения равны | (a == b) is not true |
| != | Не равно — true, если значения не равны | (a != b) is true |
| <> | Не равно (устаревший аналог !=) | (a <> b) is true |
| > | Больше — true, если левый операнд больше правого | (a > b) is not true |
| < | Меньше — true, если левый операнд меньше правого | (a < b) is true |
| >= | Больше или равно | (a >= b) is not true |
| <= | Меньше или равно | (a <= b) is true |
Операторы присваивания
a = 10, b = 20:
| Оператор | Описание | Пример |
|---|---|---|
| = | Присваивание значения правого операнда левому | c = a + b |
| += | Сложение с присваиванием | c += a ⇔ c = c + a |
| -= | Вычитание с присваиванием | c -= a ⇔ c = c - a |
| *= | Умножение с присваиванием | c *= a ⇔ c = c * a |
| /= | Деление с присваиванием | c /= a ⇔ c = c / a |
| %= | Остаток с присваиванием | c %= a ⇔ c = c % a |
| **= | Степень с присваиванием | c **= a ⇔ c = c ** a |
| //= | Целочисленное деление с присваиванием | c //= a ⇔ c = c // a |
Битовые операторы
Работают с битами. Пусть a = 60 (0011 1100), b = 13 (0000 1101):
a = 0011 1100 b = 0000 1101 ----------------- a&b = 0000 1100 a|b = 0011 1101 a^b = 0011 0001 ~a = 1100 0011
| Оператор | Описание | Пример |
|---|---|---|
| & | Битовое И — бит в результате, если он есть в обоих операндах | (a & b) = 12 (0000 1100) |
| | | Битовое ИЛИ — бит, если есть хотя бы в одном | (a | b) = 61 (0011 1101) |
| ^ | Битовое исключающее ИЛИ — бит, если установлен только в одном | (a ^ b) = 49 (0011 0001) |
| ~ | Битовое дополнение (унарный) — инвертирует биты | (~a) = -61 (1100 0011 в доп. коде) |
| << | Левый сдвиг — биты левого операнда сдвигаются влево на число бит правого | a << 2 = 240 (1111 0000) |
| >> | Правый сдвиг — биты сдвигаются вправо | a >> 2 = 15 (0000 1111) |
Логические операторы
a = 10, b = 20 (оба истинны как ненулевые):
| Оператор | Описание | Пример |
|---|---|---|
| and | Истина, если оба операнда истинны | (a and b) is true |
| or | Истина, если хотя бы один операнд ненулевой | (a or b) is true |
| not | Инверсия логического состояния | not(a and b) is false |
Операторы принадлежности (Membership)
Проверяют наличие значения в последовательности (строка, список, кортеж):
| Оператор | Описание | Пример |
|---|---|---|
| in | True, если переменная найдена в последовательности | x in y → 1, если x в y |
| not in | True, если переменная НЕ найдена | x not in y → 1, если x не в y |
Операторы тождества (Identity)
Сравнивают адреса объектов в памяти:
| Оператор | Описание | Пример |
|---|---|---|
| is | True, если переменные указывают на один объект | x is y → 1, если id(x) == id(y) |
| is not | False, если указывают на один объект, иначе True | x is not y → 1, если id(x) != id(y) |
Приоритет операторов
От высшего к низшему:
| № | Оператор и описание |
|---|---|
| 1 | ** — возведение в степень |
| 2 | ~ + - — дополнение, унарный плюс/минус |
| 3 | * / % // — умножение, деление, модуль, целочисленное деление |
| 4 | + - — сложение, вычитание |
| 5 | >> << — битовые сдвиги |
| 6 | & — битовое И |
| 7 | ^ | — битовое исключающее ИЛИ и обычное ИЛИ |
| 8 | <= < > >= — операторы сравнения |
| 9 | <> == != — операторы равенства |
| 10 | = %= /= //= -= += *= **= — операторы присваивания |
| 11 | is is not — операторы тождества |
| 12 | in not in — операторы принадлежности |
| 13 | not or and — логические операторы |
Python
- Освоение типов данных в Python: практическое руководство
- Мастерство операторов Python: Полное руководство
- Оператор pass в Python: практическое руководство
- Аргументы функций в Python: позиционные, именованные и параметры по умолчанию
- Словари в Python: создание, манипуляции и продвинутые техники
- Итераторы в Python: как они работают и как создать свои
- Замыкания в Python: как вложенные функции захватывают переменные
- Модуль datetime в Python: практическое руководство по датам, времени и часовым поясам
- Основные операторы Java: полное руководство
- Обзор Python: высокоуровневый, читаемый, интерактивный и объектно-ориентированный язык