В этом руководстве речь пойдет об операторах языка программирования Python. Вы узнаете об арифметических, логических и битовых операторах, а также операторах сравнения, присваивания, принадлежности, тождественности и их синтаксисе. Все это будет проиллюстрировано примерами.
Оператор в Python — это символ, который выполняет операцию над одним или несколькими операндами.
Операндом выступает переменная или значение, над которыми проводится операция.
Введение в операторы Python
Операторы Python бывают 7 типов:
- Арифметические операторы
- Операторы сравнения
- Операторы присваивания
- Логические операторы
- Операторы принадлежности
- Операторы тождественности
- Битовые операторы
Арифметические операторы Python
Этот тип включает операторы для проведения базовых арифметических операций.
Сложение (+)
Складывает значение по обе стороны оператора.
Пример:
>>> 3+4
7
Вычитание (-)
Вычитает значение правой стороны из значения в левой.
Пример:
>>> 3-4
-1
Умножение (*)
Перемножает значения с обеих сторон оператора.
Пример:
>>> 3*4
12
Деление (/)
Делит значение левой стороны на значение правой. Тип данных результата деления — число с плавающей точкой.
Пример:
>>> 3/4
0.75
Возведение в степень (**)
Возводит первое число в степень второго.
Пример:
>>> 3**4
81
Деление без остатка (//)
Выполняет деление и возвращает целочисленное значение частного, убирая цифры после десятичной точки.
Пример:
>>> 4//3
1
>>> 10//3
3
Деление по модулю (остаток от деления) (%)
Выполняет деление и возвращает значение остатка.
Пример:
>>> 3%4
3
>>> 4%3
1
>>> 10%3
1
>>> 10.5%3
1.5
Операторы сравнения
Операторы сравнения в Python проводят сравнение операндов. Они сообщают, является ли один из них больше второго, меньше, равным или и то и то.
Меньше (<)
Этот оператор проверяет, является ли значение слева меньше, чем правое.
Пример:
>>> 4<3
False
Больше (>)
Проверяет, является ли значение слева больше правого.
Пример:
>>> 4>3
True
Меньше или равно (<=)
Проверяет, является ли левая часть меньше или равной правой.
Пример:
>>> 7<=7
True
Больше или равно (>=)
Проверяет, является ли левая часть больше или равной правой.
Пример:
>>> 0>=0
True
Равно (==)
Этот оператор проверяет, равно ли значение слева правому. 1
равна булевому True
, а 2 (двойка) — нет. 0
равен False
.
Пример:
>>> 3==3.0
True
>>> 1==True
True
>>> 7==True
False
>>> 0==False
True
>>> 0.5==True
False
Не равно (!=)
Проверяет, не равно ли значение слева правому. Оператор <>
выполняет ту же задачу, но его убрали в Python 3.
Когда условие выполнено, возвращается True
. В противном случае — False
. Это возвращаемое значение можно использовать в последующих инструкциях и выражениях.
Пример:
>>> 1!=1.0
False
>>> 1==True # Это вызывает SyntaxError
Операторы присваивания
Оператор присваивания присваивает значение переменной. Он может манипулировать значением до присваивания. Есть 8 операторов присваивания: 1 простой и 7 с использованием арифметических операторов.
Присваивание (=)
Присваивает значение справа левой части. Стоит обратить внимание, что ==
используется для сравнения, а =
— для присваивания.
Пример:
>>> a = 7
>>> print(a)
7
Сложение и присваивание (+=)
Суммирует значение обеих сторон и присваивает его выражению слева. a += 10
— это то же самое, что и a = a + 10
.
То же касается и все остальных операторов присваивания.
Пример:
>>> a += 2
>>> print(a)
9
Вычитание и присваивание (-=)
Вычитает значение справа из левого и присваивает его выражению слева.
Пример:
>>> a -= 2
>>> print(a)
7
Деление и присваивание (/=)
Делит значение слева на правое. Затем присваивает его выражению слева.
Пример:
>>> a /= 7
>>> print(a)
1.0
Умножение и присваивание (*=)
Перемножает значения обеих сторон. Затем присваивает правое левому.
Пример:
>>> a *= 8
>>> print(a)
8.0
Деление по модулю и присваивание (%=)
Выполняет деление по модулю для обеих частей. Результат присваивает левой части.
Пример:
>>> a %= 3
>>> print(a)
2.0
Возведение в степень и присваивание (**=)
Выполняет возведение левой части в степень значения правой части. Затем присваивает значение левой части.
Пример:
>>> a **= 5
>>> print(a)
32.0
Деление с остатком и присваивание (//=)
Выполняет деление с остатком и присваивает результат левой части.
Пример:
>>> a //= 3
>>> print(a)
10.0
Это один из важных операторов Python
Логические операторы Python
Это союзы, которые позволяют объединять по несколько условий. В Python есть всего три оператора: and
(и), or
(или) и not
(не).
И (and)
Если условия с двух сторон оператора and
истинны, тогда все выражение целиком считается истинным.
Пример:
>>> a = 7 > 7 and 2 > -1
>>> print(a)
False
Или (or)
Выражение ложно, если оба операнда с двух сторон ложные. Если хотя бы одно из них истинное, то и все выражение истинно.
Пример:
>>> a = 7 > 7 or 2 > -1
>>> print(a)
True
Не (not)
Этот оператор инвертирует булевые значения выражения. True
превращается в False
и наоборот. В примере внизу булево значение 0
— False
. Поэтому оно превращается в True
.
Пример:
>>> a = not(0)
>>> print(a)
True
Операторы принадлежности
Эти операторы проверяют, является ли значение частью последовательности. Последовательность может быть списком, строкой или кортежем. Есть всего два таких оператора: in
и not in
.
В (in)
Проверяет, является ли значение членом последовательности. В этом примере видно, что строки fox
нет в списке питомцев. Но cat
— есть, поэтому она возвращает True
. Также строка me
является подстрокой disappointment
. Поэтому она вернет True
.
Пример:
>>> pets=['dog','cat', 'ferret']
>>> 'fox' in pets
False
>>> 'cat' in pets
True
>>> 'me' in 'disappointment'
True
Нет в (not in)
Этот оператор проверяет, НЕ является ли значение членом последовательности.
Пример:
>>> 'pot' not in 'disappointment'
True
Операторы тождественности
Эти операторы проверяют, являются ли операнды одинаковыми (занимают ли они одну и ту же позицию в памяти).
Это (is)
Если операнды тождественны, то вернется True
. В противном случае — False
. Здесь 2
не является 20
, поэтому вернется False
. Но '2'
— это то же самое, что и "2"
. Разные кавычки не меняют сами объекты, поэтому вернется True
.
Пример:
>>> 2 is 20
False
>>> '2' is "2"
True
Это не (is not)
2
— это число, а '2'
— строка. Поэтому вернется True
.
Пример:
>>> 2 is not '2'
True
Битовые операторы Python
Эти операторы работают над операндами бит за битом.
Бинарное И (&)
Проводит побитовую операцию and
над двумя значением. Здесь бинарная 2
— это 10
, а 3
— 11
. Результатом побитового and
является 10
— бинарная 2
. Побитовое and
над 011
(3) и 100
(4) выдает результат 000
(0).
Пример:
>>> 2&3
2
>>> 3&4
0
Бинарное ИЛИ (|)
Проводит побитовую операцию or
на двух значениях. Здесь or
для 10
(2) и 11
(3) возвращает 11
(3).
Пример:
>>> 2|3
3
Бинарное ИЛИ НЕТ (^)
Проводит побитовую операцию xor
(исключающее или) на двух значениях. Здесь результатом ИЛИ НЕ для 10
(2) и 11
(3) будет 01
(1).
Пример:
>>> 2^3
1
Инвертирующий оператор (~)
Он возвращает инвертированные двоичные числа. Другими словами, переворачивает биты. Битовая 2
— это 00000010
. Ее инвертированная версия — 11111101
. Это бинарная -3
. Поэтому результат -3
. Похожим образом ~1
равняется -2
.
Пример:
>>> ~-3
2
Еще раз, инвертированная -3
— это 2
.
Бинарный сдвиг влево (<<)
Он сдвигает значение левого операнда на позицию, которая указана справа. Так, бинарная 2
— это 10
. 2 << 2
сдвинет значение на две позиции влево и выйдет 1000
— это бинарная 8
.
Пример:
>>> 2<<2
8
Бинарный сдвиг вправо (>>)
Сдвигает значение левого оператора на позицию, указанную справа. Так, бинарная 3
— это 11
. 3 >> 2
сдвинет значение на два положение вправо. Результат — 00
, то есть 0
. 3 >> 1
сдвинет на одну позицию вправо, а результатом будет 01
— бинарная 1
.
Пример:
>>> 3>>2
>>> 3>>1
1
Выводы
В этом уроке были рассмотрены все 7 типов операторов Python. Для каждого был предложен пример в IDE. Для понимания особенностей работы операторов нужно продолжать с ними работать, использовать в условных конструкциях и объединять.