Операторы — это специальные символы или ключевые слова, которые выполняют операции над операндами (переменными, значениями). В Python операторы делятся на несколько категорий
Используются для выполнения математических операций над числами
| Оператор | Название | Описание |
|---|---|---|
+ | Сложение | Складывает два операнда |
- | Вычитание | Вычитает правый операнд из левого |
* | Умножение | Умножает два операнда |
/ | Деление | Вещественное деление (в ответе не целые числа) |
// | Целочисленное деление | Целое деление (в ответе целые числа) |
% | Остаток от деления | Возвращает остаток от деления |
** | Возведение в степень | Возводит левый операнд в степень правого |
Примеры
a = 17
b = 4
print("Сложение:", a + b) # 23
print("Вычитание:", a - b) # 13
print("Умножение:", a * b) # 68
print("Деление:", a / b) # 4.25
print("Целочисленное деление:", a // b) # 4
print("Остаток от деления:", a % b) # 1
print("Возведение в степень:", a ** b) # 83521
Сравнивают два значения и возвращают True или False
| Оператор | Название | Описание |
|---|---|---|
== | Равно | Проверяет равенство значений |
!= | Не равно | Проверяет неравенство значений |
> | Больше | Проверяет, больше ли левый операнд |
< | Меньше | Проверяет, меньше ли левый операнд |
>= | Больше или равно | Проверяет, больше или равен левый операнд |
<= | Меньше или равно | Проверяет, меньше или равен левый операнд |
Примеры
# Сравнение чисел
x = 10
y = 5
z = 10
print(x == y) # False
print(x != y) # True
print(x > y) # True
print(x < y) # False
print(x >= z) # True
print(x <= z) # True
# Сравнение строк (лексиграфическое)
str1 = "apple"
str2 = "banana"
print("Сравнение строк:", str1 < str2)
# True
# a в unicode - 97
# b в unicode - 98
# 97 < 98, поэтому сразу определяется, что "apple" < "banana" — True.
# Дальнейшие символы не проверяются, так как отличие уже найдено.
Присваивают значения переменным
| Оператор | Пример | Эквивалент | Описание |
|---|---|---|---|
= | x = 5 | x = 5 | Простое присваивание |
+= | x += 3 | x = x + 3 | Добавление с присваиванием |
-= | x -= 2 | x = x - 2 | Вычитание с присваиванием |
*= | x *= 4 | x = x * 4 | Умножение с присваиванием |
/= | x /= 2 | x = x / 2 | Деление с присваиванием |
//= | x //= 3 | x = x // 3 | Целочисленное деление с присв. |
%= | x %= 3 | x = x % 3 | Остаток от деления с присв. |
**= | x **= 2 | x = x ** 2 | Возведение в степень с присв. |
Работают с булевыми значениями (True/False)
| Оператор | Название | Описание |
|---|---|---|
and | И | True, если оба операнда True |
or | ИЛИ | True, если хотя бы один операнд True |
not | НЕ | Инвертирует значение |
Примеры
print(True and True) # True
print(True and False) # False
print(False and False) # False
print(True or True) # True
print(True or False) # True
print(False or False) # False
print(not True) # False
print(not False) # True
# пример с переменными
age = 25
has_license = True
can_drive = age >= 18 and has_license
print(f"Может ли водить машину: {can_drive}") # True
Проверяют, являются ли объекты одним и тем же объектом в памяти. Не путать со сравнением значений
| Оператор | Название | Описание |
|---|---|---|
is | Это | True, если оба объекта одинаковые |
is not | Не это | True, если объекты разные |
Примеры
# Для простых типов (интернирование)
a = 256
b = 256
print(a is b) # True (Python кэширует маленькие целые числа)
# Для списков (разные объекты)
list1 = [1, 2, 3]
list2 = [1, 2, 3]
list3 = list1
print(list1 is list2) # False (разные объекты)
print(list1 is list3) # True (один и тот же объект)
print(list1 == list2) # True (содержимое одинаковое)
Проверяют наличие элемента в последовательности.
| Оператор | Название | Описание |
|---|---|---|
in | Входит в | True, если элемент в последовательности |
not in | Не входит в | True, если элемента нет в последовательности |
Примеры
# Проверка в строках
text = "Hello, World!"
print('Hello' in text) # True
print('Python' in text) # False
print('World' not in text) # False
# Проверка в списках
fruits = ['apple', 'banana', 'orange', 'grape']
print('banana' in fruits) # True
print('mango' in fruits) # False
print('pear' not in fruits) # True
# Проверка в словарях (проверяет ключи)
person = {'name': 'Alice', 'age': 30, 'city': 'Moscow'}
print('name' in person) # True
print('Alice' in person) # False (проверяет ключи, не значения)
print('age' not in person) # False
Работают с числами на уровне битов (двоичного представления).
| Оператор | Название | Описание |
|---|---|---|
& | И (AND) | Побитовое И |
| | ИЛИ (OR) | Побитовое ИЛИ |
^ | XOR | Исключающее ИЛИ |
~ | НЕ (NOT) | Побитовое отрицание |
<< | Сдвиг влево | Сдвиг битов влево |
>> | Сдвиг вправо | Сдвиг битов вправо |
Примеры
a = 10 # 1010 в двоичной
b = 4 # 0100 в двоичной
# Побитовое И (AND)
print(a & b) # 1010 & 0100 = 0000 (0)
# Побитовое ИЛИ (OR)
print(a | b) # 1010 | 0100 = 1110 (14)
# Побитовое исключающее ИЛИ (XOR)
print(a ^ b) # 1010 ^ 0100 = 1110 (14)
# Побитовое НЕ (NOT)
print(~a)
# для примера 8 бит
# 0000 1010
# после инверта 1111 0101
# старший бит 1 из-за этого число отриц-ое
# Чтобы узнать его значение в десятичной системе:
# Инвертируем все биты обратно: 0000 1010
# Добавляем 1: 0000 1011
# Ставим знак минус: -11
# Сдвиг влево
print(a << 1) # 1010 << 1 = 10100 (20)
print(a << 2) # 1010 << 2 = 101000 (40)
# Сдвиг вправо
print(a >> 1) # 1010 >> 1 = 0101 (5)
print(a >> 2) # 1010 >> 2 = 0010 (2)
() — скобки (группировка) — ВЫСШИЙ** — возведение в степень+x, -x, ~x — унарные плюс, минус, побитовое НЕ*, /, //, % — умножение, деление, целочисленное деление, остаток+, - — сложение, вычитание<<, >> — битовые сдвиги& — побитовое И^ — побитовое исключающее ИЛИ| — побитовое ИЛИ==, !=, >, <, >=, <=, is, is not, in, not in — сравнение, идентичность, принадлежностьnot — логическое НЕand — логическое Иor — логическое ИЛИ= и другие операторы присваивания — НИЗШИЙПримеры
# Пример с разным приоритетом
result1 = 2 + 3 * 4 ** 2 / 8 - 1
# Порядок вычислений:
# 1. 4 ** 2 = 16
# 2. 3 * 16 = 48
# 3. 48 / 8 = 6.0
# 4. 2 + 6.0 = 8.0
# 5. 8.0 - 1 = 7.0
print(result1) # 7.0
# Использование скобок для изменения порядка
result2 = (2 + 3) * (4 ** 2) / (8 - 1)
# 1. (2 + 3) = 5
# 2. (4 ** 2) = 16
# 3. (8 - 1) = 7
# 4. 5 * 16 = 80
# 5. 80 / 7 ≈ 11.4286
print(result2:.4f) # 11.4286
# Смешанные операторы
a, b, c = 5, 3, 2
result3 = not a > b and c != 0 or b == 3
# Порядок вычислений:
# 1. a > b = 5 > 3 = True
# 2. not True = False
# 3. c != 0 = 2 != 0 = True
# 4. False and True = False
# 5. b == 3 = 3 == 3 = True
# 6. False or True = True
print(result3) # True