Операторы в Python: арифметика, сравнение, логические операции — что и когда использовать

Оператор в Python — это символ или конструкция, которая выполняет действие над одним или несколькими операндами (значениями, переменными). Операторы позволяют считать, сравнивать, комбинировать условия и управлять потоком программы. В этой статье разберём три базовые группы: арифметические, операторы сравнения и логические. Всё — с примерами и практическими рекомендациями, где какой оператор уместен.


Арифметические операторы

Используются для вычислений: подсчётов, преобразований величин, расчётов индексов и т. п.

Оператор Описание Пример Результат
+ Сложение 2 + 3 5
- Вычитание 10 - 4 6
* Умножение 3 * 4 12
/ Деление (всегда float) 10 / 3 3.333...
// Целочисленное деление 10 // 3 3
% Остаток от деления 10 % 3 1
** Возведение в степень 2 ** 3 8

Когда что использовать

  • +, -, *. Для обычных расчётов.
  • /. Когда нужен точный результат с дробной частью (например, среднее значение).
  • // и %. Часто нужны в алгоритмах с индексами, разбиением на группы, проверками чётности.
  • **. Для степеней, корней (через дробную степень), сложных формул.

Практические примеры

Чётность числа:

python
n = 7
if n % 2 == 0:
    print("Чётное")
else:
    print("Нечётное")

Разбиение на страницы (пагинация):

python
items_per_page = 10
total_items = 23
pages = (total_items + items_per_page - 1) // items_per_page  # округление вверх
print(pages)  # 3

Формула (a + b - 1) // b — стандартный приём округления вверх при целочисленном делении.

Вычисление процента скидки:

python
price = 1990
discount_percent = 15
discount = price * (discount_percent / 100)
final = price - discount
print(final)  # 1691.5

Корень через возведение в степень:

python
x = 16
root = x ** 0.5
print(root)  # 4.0

Операторы сравнения

Возвращают булево значение: True или False. Используются в условиях (if, while) и фильтрациях.

Оператор Описание Пример
== Равно 5 == 5True
!= Не равно 5 != 3True
> Больше 10 > 3True
< Меньше 3 < 10True
>= Больше или равно 5 >= 5True
<= Меньше или равно 3 <= 5True

Частая ошибка: = вместо ==

  • = — оператор присваивания.
  • == — оператор сравнения.
python
x = 5          # присваивание
if x == 5:     # сравнение
    print("OK")

Если написать if x = 5: — будет синтаксическая ошибка.

Сравнение разных типов

Python допускает сравнение чисел и строк, но результат может быть неочевидным. Лучше сравнивать значения одного типа.

python
"10" == 10      # False (строка и число не равны)
int("10") == 10 # True

Практический пример: проверка диапазона

python
age = 17
if 0 <= age <= 120:
    print("Возраст в допустимом диапазоне")
else:
    print("Недопустимый возраст")

В Python можно писать цепочки сравнений (0 <= age <= 120) — это читаемо и безопасно.


Логические операторы

Объединяют условия. Основные: and, or, not.

Оператор Смысл Пример
and И (оба условия должны быть истинными) (x > 0) and (x < 10)
or ИЛИ (хотя бы одно условие истинно) (x < 0) or (x > 100)
not НЕ (инверсия) not (x == 5)

Приоритет и скобки

Приоритет: notandor. Для ясности используйте скобки:

python
is_member = True
has_coupon = False
total = 1200
 
# Скидка, если участник ИЛИ есть купон, И сумма больше 1000
if (is_member or has_coupon) and total > 1000:
    print("Скидка применяется")

Без скобок логика могла бы стать неверной из‑за приоритета операторов.

Короткое вычисление (short‑circuit evaluation)

Python не вычисляет вторую часть выражения, если результат уже ясен:

  • False and ... — вторая часть не проверяется.
  • True or ... — вторая часть не проверяется.

Это можно использовать для безопасных проверок:

python
user = None
if user is not None and user.is_active:
    # user.is_active не выполнится, если user == None
    pass

Практический пример: расчёт скидки с условиями

Допустим, скидка 20 % действует, если:

  • покупатель — участник программы лояльности,
  • И сумма чека больше 1000 рублей,
  • ИЛИ у него есть промокод.
python
is_member = True
total = 1200
has_promo = False
 
discount_rate = 0.0
 
if is_member and (total > 1000 or has_promo):
    discount_rate = 0.20
 
final_price = total * (1 - discount_rate)
print("Итоговая цена:", final_price)

Здесь:

  • арифметические операторы — для расчёта итоговой цены;
  • операторы сравнения — для проверки условий;
  • логические — для объединения правил.

Частые ошибки и как их избежать

  • Путают = и == в условиях. Всегда проверяйте, что в if используется сравнение.
  • Забывают про типы. "5" > 2 вызовет TypeError в Python 3. Приводите типы явно: int("5") > 2.
  • Не учитывают приоритет логических операторов. Используйте скобки для ясности.
  • Сравнивают float «в лоб». Из‑за погрешностей 0.1 + 0.2 == 0.3 может быть False. Для точных сравнений лучше использовать math.isclose():
python
import math
a = 0.1 + 0.2
b = 0.3
print(math.isclose(a, b))  # True

Добавить комментарий