Операторы в Python
В этом уроке вы узнаете все о разных типах операторов в Python, их синтаксисе и примерах использования.
Что такое операторы
Операторы — специальные символы, которые выполняют арифметические и логические вычисления. Значения, на которые действует оператор, называются операндами.
Например:
>>> 2+3
5
Здесь оператор +
выполняет сложение, 2
и 3
— операнды, а 5
— вывод операции.
Арифметические операторы
Арифметические операторы используются для выполнения математических операций — сложения, вычитания, умножения и т. д.
Оператор |
Действие |
Пример |
+ |
Сложение двух операндов или унарный плюс |
x + y + 2 |
- |
Вычитание правого оператора из левого или унарный минус |
x - y- 2 |
* |
Умножение двух операндов |
x * y |
/ |
Деление левого операнда на правый (результат всегда типа float) |
x / y |
% |
Остаток от деления левого операнда на правый |
x % y (остаток от x / y) |
// |
Деление с округлением — деление, результат которого корректируется в меньшую сторону |
x // y |
** |
Показатель степени — левый операнд возводится в значение правого операнда |
x**y |
x = 15
y = 4
# Вывод: x + y = 19
print('x + y =', x+y)
# Вывод: x - y = 11
print('x - y =', x-y)
# Вывод: x * y = 60
print('x * y =', x*y)
# Вывод: x / y = 3.75
print('x / y =', x/y)
# Вывод: x // y = 3
print('x // y =', x//y)
# Вывод: x ** y = 50625
print('x ** y =', x**y)
Вывод:
x + y = 19
x - y = 11
x * y = 60
x / y = 3.75
x // y = 3
x ** y = 50625
Операторы сравнения
Операторы сравнения используются для сравнения значений, они возвращают True
или False
в зависимости от условия.
Оператор |
Действие |
Пример |
> |
Больше чем: True, если левый операнд больше правого |
x > y |
< |
Меньше чем: True, если левый операнд меньше правого |
x < y |
== |
Равно: True, если операнды равны между собой |
x == y |
!= |
Не равно: True, если операнды не равны между собой |
x != y |
>= |
Больше или равно: True, если левый операнд больше или равен правому |
x >= y |
<= |
Меньше или равно: True, если левый операнд меньше или равен правому |
x <= y |
x = 10
y = 12
# Вывод: x > y — False
print('x > y —', x>y)
# Вывод: x < y — True
print('x < y —', x<y)
# Вывод: x == y — False
print('x == y —', x==y)
# Вывод: x != y — True
print('x != y —', x!=y)
# Вывод: x >= y — False
print('x >= y —', x>=y)
# Вывод: x <= y — True
print('x <= y —', x<=y)
Вывод:
x > y — False
x < y — True
x == y — False
x != y — True
x >= y — False
x <= y — True
Логические операторы
Операторы and
, or
, not
— логические.
Оператор |
Действие |
Пример |
and |
True, если значения обоих операндов True |
x and y |
or |
True, если значение одного из операндов True |
x or y |
not |
True, если значение операнда False (дополняет значение операнда) |
not x |
x = True
y = False
print('x and y —', x and y)
print('x or y —', x or y)
print('not x —', not x)
Вывод:
x and y — False
x or y — True
not x — False
Побитовые операторы
Побитовые операторы работают с операндами как со строками из 0 и 1. Они действуют бит за битом, как и говорит название.
Например, 2 в двоичной системе счисления — 10
, а 7 — 111
.
В таблице ниже: x
= 10 (00001010
в двоичной системе счисления) и y
= 4 (00000100
в двоичной системе счисления)
Оператор |
Действие |
Пример |
|
Побитовое И |
x & y = 0 ( |
|
Побитовое ИЛИ |
x | y = 14 ( |
|
Побитовое НЕ |
~x = -11 ( |
|
Побитовое XOR |
x ^ y = 14 ( |
|
Побитовый сдвиг вправо |
x >> 2 = 2 ( |
|
Побитовый сдвиг влево |
x << 2 = 40 ( |
Операторы присваивания
Операторы присваивания используются для назначения переменной некоторого значения.
a = 5
— простой оператор присваивания, который приравнивает значение 5 справа переменной а
слева.
В Python множество составных операторов, подобных a += 5
— он прибавляет 5 к переменной a
и позже присваивает ей получившееся значение. Этот оператор равносилен записи a = a + 5
.
Оператор |
Пример |
Эквивалентно |
|
x = 5 |
x = 5 |
|
x += 5 |
x = x + 5 |
|
x -= 5 |
x = x - 5 |
|
x *= 5 |
x = x * 5 |
|
x /= 5 |
x = x / 5 |
|
x %= 5 |
x = x % 5 |
|
x //= 5 |
x = x // 5 |
|
x **= 5 |
x = x ** 5 |
|
x &= 5 |
x = x & 5 |
|
x |= 5 |
x = x | 5 |
|
x ^= 5 |
x = x ^ 5 |
|
x >>= 5 |
x = x >> 5 |
|
x <<= 5 |
x = x << 5 |
Особые операторы
В Python есть особые типы операторов: операторы тождественности и принадлежности.
Операторы тождественности
is
и is not
— операторы тождественности в Python. Они проверяют, находятся ли два значения (или две переменные) по одному адресу в памяти. То, что две переменные равны еще не значит, что они идентичны.
Оператор |
Действие |
Пример |
|
True, если операнды идентичны (указывают на один объект) |
x is True |
|
True, если операнды не идентичны (не указывают на один объект) |
x is not True |
x1 = 5
y1 = 5
x2 = 'Привет'
y2 = 'Привет'
x3 = [1,2,3]
y3 = [1,2,3]
# Вывод: False
print(x1 is not y1)
# Вывод: True
print(x2 is y2)
# Вывод: False
print(x3 is y3)
Вывод:
False
True
False
Мы видим, что x1
и y1
— целочисленные переменные с одинаковыми значениями, поэтому они равны и идентичны. То же с x2
и y2
(строки).
Но x3
и y3
— списки. Они равны, но не идентичны, поскольку интерпретатор кладет их в разные места в памяти, хоть эти списки и равны.
Операторы принадлежности
in
и not in
— операторы принадлежности в Python. Они проверяют, есть ли значение или переменная в последовательности (строке, списке, кортеже, множестве или словаре). Иначе говоря, проверяют вхождение элемента в коллекцию. В словаре можно проверить только присутствие ключа, не значения.
Оператор |
Действие |
Пример |
|
True, если значение или переменная есть в последовательности |
5 in x |
|
True, если значения или переменной нет в последовательности |
5 not in x |
x = 'Привет, мир'
y = {1:'a',2:'b'}
# Вывод: True
print('П' in x)
# Вывод: True
print('привет' not in x)
# Вывод: True
print(1 in y)
# Вывод: False
print('б' in y)
Вывод:
True
True
True
False
'П'
есть в x
, а вот строки 'привет'
в x
нет (помните: Python чувствителен к регистру). Таким же образом образом 1
— ключ, а 'a'
— значение в словаре y
, поэтому вывод 'б' in y
— False
.