Что такое операторы?

Операторы - это специальные символы, которые выполняют операции над переменными и значениями. В Python существует несколько типов операторов:

Теория: Что такое операторы и зачем они нужны?

Операторы - это как инструменты в коробке инструментов программиста. Каждый оператор выполняет определенную работу:

  • Арифметические операторы (+, -, *, /) - для математических вычислений
  • Операторы сравнения (==, !=, >, <) - для сравнения значений
  • Логические операторы (and, or, not) - для создания сложных условий
  • Операторы присваивания (=, +=, -=) - для сохранения значений в переменных

Без операторов мы не могли бы выполнять даже самые простые вычисления в программах.

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

Арифметические операторы используются для выполнения математических операций:

Практическое объяснение арифметических операторов

Арифметические операторы работают так же, как в школьной математике, но с некоторыми особенностями:

  • Оператор деления / всегда возвращает число с плавающей точкой, даже если делится целое число нацело
  • Оператор целочисленного деления // отбрасывает дробную часть результата
  • Оператор остатка от деления % возвращает остаток от деления
  • Оператор возведения в степень ** работает с любыми числами, включая дробные степени
Оператор Название Пример Результат Пояснение
+ Сложение 5 + 3 8 Складывает два числа
- Вычитание 5 - 3 2 Вычитает второе число из первого
* Умножение 5 * 3 15 Перемножает два числа
/ Деление 5 / 2 2.5 Делит первое число на второе, всегда возвращает float
// Целочисленное деление 5 // 2 2 Делит и отбрасывает дробную часть
% Остаток от деления 5 % 2 1 Возвращает остаток от деления
** Возведение в степень 5 ** 2 25 Возводит первое число в степень второго
arithmetic_operators.py
a = 10
b = 3

print("Сложение:", a + b)
print("Вычитание:", a - b)
print("Умножение:", a * b)
print("Деление:", a / b)
print("Целочисленное деление:", a // b)
print("Остаток от деления:", a % b)
print("Возведение в степень:", a ** b)
Практический пример: Калькулятор скидок

Представим, что вы создаете программу для расчета скидок в магазине:

# Исходная цена товара
original_price = 1000

# Размер скидки в процентах
discount_percent = 15

# Расчет суммы скидки
discount_amount = original_price * discount_percent / 100

# Расчет итоговой цены
final_price = original_price - discount_amount

print(f"Исходная цена: {original_price} руб.")
print(f"Скидка: {discount_percent}%")
print(f"Сумма скидки: {discount_amount} руб.")
print(f"Итоговая цена: {final_price} руб.")

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

Операторы сравнения используются для сравнения двух значений. Результатом сравнения является булево значение (True или False):

Теория: Логические значения True и False

В программировании логические значения True (истина) и False (ложь) используются для представления результатов условий:

  • True означает, что условие выполнено
  • False означает, что условие не выполнено

Эти значения являются основой для принятия решений в программах (условные операторы if/else).

Оператор Название Пример Результат Пояснение
== Равно 5 == 3 False Проверяет равенство значений
!= Не равно 5 != 3 True Проверяет неравенство значений
> Больше 5 > 3 True Проверяет, больше ли первое значение второго
< Меньше 5 < 3 False Проверяет, меньше ли первое значение второго
>= Больше или равно 5 >= 5 True Проверяет, больше или равно первое значение второму
<= Меньше или равно 5 <= 3 False Проверяет, меньше или равно первое значение второму
comparison_operators.py
x = 10
y = 5

print("x равно y:", x == y)
print("x не равно y:", x != y)
print("x больше y:", x > y)
print("x меньше y:", x < y)
print("x больше или равно y:", x >= y)
print("x меньше или равно y:", x <= y)
Практический пример: Проверка возраста

Пример использования операторов сравнения для проверки возраста:

user_age = 17
legal_age = 18

if user_age >= legal_age:
    print("Пользователь совершеннолетний")
else:
    print(f"Пользователю нужно подождать {legal_age - user_age} лет")

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

Логические операторы используются для объединения условных выражений:

Теория: Как работают логические операторы

Логические операторы следуют законам логики:

  • and (И) - возвращает True только если оба условия истинны
  • or (ИЛИ) - возвращает True если хотя бы одно условие истинно
  • not (НЕ) - инвертирует значение (True становится False и наоборот)

Таблица истинности для AND:

ABA and B
FalseFalseFalse
FalseTrueFalse
TrueFalseFalse
TrueTrueTrue

Оператор Название Описание Пример Результат
and И Возвращает True, если оба выражения истинны True and True True
and И Возвращает False, если хотя бы одно выражение ложно True and False False
or Или Возвращает True, если хотя бы одно выражение истинно True or False True
or Или Возвращает False, если оба выражения ложны False or False False
not Не Инвертирует результат логического выражения not True False
logical_operators.py
age = 25
has_license = True

# Оператор and
if age >= 18 and has_license:
    print("Можно водить машину")

# Оператор or
if age < 18 or not has_license:
    print("Нельзя водить машину")

# Комбинирование операторов
if (age >= 18 and has_license) or age >= 65:
    print("Особые условия")
Практический пример: Система доступа

Пример использования логических операторов для проверки доступа:

username = "admin"
password = "12345"
is_active = True

# Проверка правильности логина и пароля
if username == "admin" and password == "12345" and is_active:
    print("Доступ разрешен")
else:
    print("Доступ запрещен")

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

Операторы присваивания используются для присвоения значений переменным:

Теория: Расширенные операторы присваивания

Расширенные операторы присваивания (+=, -=, *= и т.д.) - это сокращенная запись часто используемых операций:

  • x += 5 эквивалентно x = x + 5
  • x -= 3 эквивалентно x = x - 3
  • x *= 2 эквивалентно x = x * 2

Эти операторы делают код более компактным и читаемым.

Оператор Пример Аналог Пояснение
= x = 5 x = 5 Простое присваивание
+= x += 3 x = x + 3 Прибавление и присваивание
-= x -= 3 x = x - 3 Вычитание и присваивание
*= x *= 3 x = x * 3 Умножение и присваивание
/= x /= 3 x = x / 3 Деление и присваивание
%= x %= 3 x = x % 3 Остаток от деления и присваивание
//= x //= 3 x = x // 3 Целочисленное деление и присваивание
**= x **= 3 x = x ** 3 Возведение в степень и присваивание
assignment_operators.py
x = 10
print("Начальное значение x:", x)

x += 5   # x = x + 5
print("После x += 5:", x)

x -= 3   # x = x - 3
print("После x -= 3:", x)

x *= 2   # x = x * 2
print("После x *= 2:", x)

x /= 4   # x = x / 4
print("После x /= 4:", x)
Практический пример: Счетчик посещений

Пример использования операторов присваивания для подсчета посещений:

visits = 0
print(f"Начальное количество посещений: {visits}")

# Увеличиваем счетчик при каждом посещении
visits += 1
print(f"После первого посещения: {visits}")

visits += 1
print(f"После второго посещения: {visits}")

# Сброс счетчика
visits = 0
print(f"После сброса: {visits}")

Приоритет операторов

В Python операторы имеют разный приоритет выполнения. Операторы с более высоким приоритетом выполняются первыми:

Теория: Приоритет операторов

Приоритет операторов определяет порядок выполнения операций в выражении, как в математике:

  1. Сначала выполняются операции в скобках
  2. Затем возведение в степень (**)
  3. Потом умножение и деление (*, /, //, %)
  4. И в конце сложение и вычитание (+, -)

Если операторы имеют одинаковый приоритет, они выполняются слева направо.

Приоритет Операторы Пояснение
Наивысший ** (возведение в степень) Выполняется первым
+x, -x, ~x (унарные плюс, минус, побитовое НЕ) Унарные операции
*, /, //, % (умножение, деление) Выполняются слева направо
+, - (сложение, вычитание) Выполняются слева направо
<<, >> (побитовые сдвиги) Побитовые операции
& (побитовое И) Побитовые операции
^ (побитовое исключающее ИЛИ) Побитовые операции
| (побитовое ИЛИ) Побитовые операции
in, not in, is, is not, <, <=, >, >=, !=, == (сравнения) Операторы сравнения
not (логическое НЕ) Логическое отрицание
and (логическое И) Логическая конъюнкция
Наименьший or (логическое ИЛИ) Логическая дизъюнкция
Совет

Для изменения порядка выполнения операций используйте скобки:

# Без скобок
result1 = 2 + 3 * 4   # Результат: 14 (сначала умножение, потом сложение)

# Со скобками
result2 = (2 + 3) * 4   # Результат: 20 (сначала сложение в скобках, потом умножение)

print("Без скобок:", result1)
print("Со скобками:", result2)
Практический пример: Расчет стоимости заказа

Пример с учетом приоритета операторов:

# Цена товаров
item1_price = 100
item2_price = 150
item3_price = 200

# Количество каждого товара
item1_quantity = 2
item2_quantity = 1
item3_quantity = 3

# Скидка в процентах
discount = 10

# Расчет общей стоимости с учетом скидки
total_cost = (item1_price * item1_quantity + 
              item2_price * item2_quantity + 
              item3_price * item3_quantity) * (100 - discount) / 100

print(f"Общая стоимость заказа со скидкой: {total_cost} руб.")

Практические задания

Теория: Как выполнять задания по операторам

Для выполнения заданий по операторам следуйте этим шагам:

  1. Определите, какие операторы вам понадобятся (арифметические, сравнения, логические)
  2. Создайте необходимые переменные с понятными именами
  3. Выполните операции пошагово, проверяя каждый шаг
  4. Используйте скобки для явного указания порядка операций, если это необходимо
  5. Выводите промежуточные результаты для проверки
Задания
  1. Калькулятор финансов: Создайте программу, которая рассчитывает ежемесячные расходы семьи. Введите расходы на продукты, коммунальные услуги, транспорт и развлечения. Рассчитайте общую сумму расходов и средний расход по каждой категории. Подсказка: используйте арифметические операторы (+, /) и создайте переменные для каждой категории расходов.
  2. Проверка пароля: Напишите программу, которая проверяет надежность пароля. Пароль должен быть не короче 8 символов, содержать хотя бы одну цифру и хотя бы одну букву. Используйте операторы сравнения и логические операторы. Подсказка: используйте функцию len() для проверки длины и оператор in для проверки наличия символов.
  3. Конвертер валют: Создайте программу для конвертации валют. Введите сумму в рублях и курс доллара. Рассчитайте сумму в долларах. Добавьте комиссию 1% от суммы. Подсказка: используйте операторы умножения и деления, а также операторы присваивания для добавления комиссии.
  4. Система оценок: Напишите программу, которая проверяет, попадает ли введенное число в диапазон от 10 до 100 включительно, используя операторы сравнения. Добавьте проверку, что число четное. Подсказка: используйте операторы >=, <= и оператор остатка от деления (%) для проверки четности.
  5. Калькулятор калорий: Создайте программу для расчета калорийности блюда. Введите вес продукта в граммах и его калорийность на 100 грамм. Рассчитайте общую калорийность. Добавьте 10% на приготовление. Подсказка: используйте операторы умножения и деления, а также операторы присваивания для добавления процентов.
  6. Сравнение чисел: Напишите программу, которая принимает три числа и определяет, являются ли они все положительными, все четными или хотя бы одно больше 100. Используйте логические операторы. Подсказка: используйте операторы сравнения (> 0 для положительности) и логические операторы (and, or).
Решения:

Задание 1: Калькулятор финансов

# Ввод расходов по категориям
food_expenses = 15000
utilities_expenses = 8000
transport_expenses = 5000
entertainment_expenses = 3000

# Расчет общей суммы расходов
total_expenses = food_expenses + utilities_expenses + transport_expenses + entertainment_expenses

# Расчет среднего расхода по категориям
average_expense = total_expenses / 4

# Вывод результатов
print("=== Финансовый отчет ===")
print(f"Расходы на продукты: {food_expenses} руб.")
print(f"Коммунальные услуги: {utilities_expenses} руб.")
print(f"Транспорт: {transport_expenses} руб.")
print(f"Развлечения: {entertainment_expenses} руб.")
print(f"Общая сумма расходов: {total_expenses} руб.")
print(f"Средний расход по категориям: {average_expense} руб.")

Задание 2: Проверка пароля

# Ввод пароля
password = "MyPass123"

# Проверка длины пароля
has_min_length = len(password) >= 8

# Проверка наличия хотя бы одной цифры
has_digit = ('0' in password or '1' in password or '2' in password or 
             '3' in password or '4' in password or '5' in password or 
             '6' in password or '7' in password or '8' in password or '9' in password)

# Проверка наличия хотя бы одной буквы
has_letter = False
for char in password:
    if char.isalpha():
        has_letter = True
        break

# Проверка надежности пароля
is_strong = has_min_length and has_digit and has_letter

if is_strong:
    print("Пароль надежный")
else:
    print("Пароль ненадежный")
    if not has_min_length:
        print("- Слишком короткий (меньше 8 символов)")
    if not has_digit:
        print("- Нет цифр")
    if not has_letter:
        print("- Нет букв")

Задание 3: Конвертер валют

# Ввод данных
rubles = 5000
exchange_rate = 75.5  # рублей за 1 доллар

# Расчет суммы в долларах
dollars = rubles / exchange_rate

# Добавление комиссии 1%
commission = dollars * 0.01
dollars_with_commission = dollars - commission

# Вывод результатов
print(f"Сумма в рублях: {rubles} руб.")
print(f"Курс: 1 USD = {exchange_rate} RUB")
print(f"Сумма в долларах без комиссии: {dollars:.2f} USD")
print(f"Комиссия (1%): {commission:.2f} USD")
print(f"Сумма к получению: {dollars_with_commission:.2f} USD")

Задание 4: Система оценок

# Ввод числа
number = 42

# Проверка, попадает ли число в диапазон от 10 до 100 включительно
in_range = number >= 10 and number <= 100

# Проверка, является ли число четным
is_even = number % 2 == 0

# Вывод результатов
print(f"Число: {number}")
print(f"Попадает в диапазон 10-100: {in_range}")
print(f"Четное: {is_even}")

# Дополнительная проверка
if in_range and is_even:
    print("Число четное и находится в диапазоне 10-100")

Задание 5: Калькулятор калорий

# Ввод данных
weight_grams = 250  # вес продукта в граммах
calories_per_100g = 350  # калорий на 100 грамм

# Расчет общей калорийности
total_calories = (weight_grams * calories_per_100g) / 100

# Добавление 10% на приготовление
cooking_addition = total_calories * 0.1
total_calories += cooking_addition

# Вывод результатов
print(f"Вес продукта: {weight_grams} г")
print(f"Калорийность на 100г: {calories_per_100g} ккал")
print(f"Общая калорийность: {total_calories:.1f} ккал")
print(f"Добавка на приготовление (10%): {cooking_addition:.1f} ккал")

Задание 6: Сравнение чисел

# Ввод трех чисел
a = 15
b = 20
c = 25

# Проверка, все ли числа положительные
all_positive = a > 0 and b > 0 and c > 0

# Проверка, все ли числа четные
all_even = (a % 2 == 0) and (b % 2 == 0) and (c % 2 == 0)

# Проверка, хотя бы одно больше 100
at_least_one_over_100 = a > 100 or b > 100 or c > 100

# Вывод результатов
print(f"Числа: {a}, {b}, {c}")
print(f"Все положительные: {all_positive}")
print(f"Все четные: {all_even}")
print(f"Хотя бы одно больше 100: {at_least_one_over_100}")
Предыдущий урок Следующий урок