Операторы - это специальные символы, которые выполняют операции над переменными и значениями. В Python существует несколько типов операторов:
Операторы - это как инструменты в коробке инструментов программиста. Каждый оператор выполняет определенную работу:
Без операторов мы не могли бы выполнять даже самые простые вычисления в программах.
Арифметические операторы используются для выполнения математических операций:
Арифметические операторы работают так же, как в школьной математике, но с некоторыми особенностями:
/ всегда возвращает число с плавающей точкой, даже если делится целое число нацело// отбрасывает дробную часть результата% возвращает остаток от деления** работает с любыми числами, включая дробные степени| Оператор | Название | Пример | Результат | Пояснение |
|---|---|---|---|---|
+ |
Сложение | 5 + 3 |
8 |
Складывает два числа |
- |
Вычитание | 5 - 3 |
2 |
Вычитает второе число из первого |
* |
Умножение | 5 * 3 |
15 |
Перемножает два числа |
/ |
Деление | 5 / 2 |
2.5 |
Делит первое число на второе, всегда возвращает float |
// |
Целочисленное деление | 5 // 2 |
2 |
Делит и отбрасывает дробную часть |
% |
Остаток от деления | 5 % 2 |
1 |
Возвращает остаток от деления |
** |
Возведение в степень | 5 ** 2 |
25 |
Возводит первое число в степень второго |
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 означает, что условие не выполненоЭти значения являются основой для принятия решений в программах (условные операторы if/else).
| Оператор | Название | Пример | Результат | Пояснение |
|---|---|---|---|---|
== |
Равно | 5 == 3 |
False |
Проверяет равенство значений |
!= |
Не равно | 5 != 3 |
True |
Проверяет неравенство значений |
> |
Больше | 5 > 3 |
True |
Проверяет, больше ли первое значение второго |
< |
Меньше | 5 < 3 |
False |
Проверяет, меньше ли первое значение второго |
>= |
Больше или равно | 5 >= 5 |
True |
Проверяет, больше или равно первое значение второму |
<= |
Меньше или равно | 5 <= 3 |
False |
Проверяет, меньше или равно первое значение второму |
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:
| A | B | A and B |
|---|---|---|
| False | False | False |
| False | True | False |
| True | False | False |
| True | True | True |
| Оператор | Название | Описание | Пример | Результат |
|---|---|---|---|---|
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 |
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 + 5x -= 3 эквивалентно x = x - 3x *= 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 |
Возведение в степень и присваивание |
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 операторы имеют разный приоритет выполнения. Операторы с более высоким приоритетом выполняются первыми:
Приоритет операторов определяет порядок выполнения операций в выражении, как в математике:
Если операторы имеют одинаковый приоритет, они выполняются слева направо.
| Приоритет | Операторы | Пояснение |
|---|---|---|
| Наивысший | ** (возведение в степень) |
Выполняется первым |
+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: Калькулятор финансов
# Ввод расходов по категориям
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}")