Арифметические, сравнения и логические операторы
Вы уже знаете, что такое числа, строки и булевы значения. Но как заставить их работать? Как сравнивать, изменять, принимать решения? Здесь на помощь приходят операторы — специальные символы или слова, которые выполняют действия над значениями.
В Python есть три основные группы операторов: арифметические, сравнения и логические. Разберём каждую.
Арифметические операторы: Считаем и вычисляем
Эти операторы нужны для математических расчётов. Большинство вы знаете из школы, но есть пара нюансов.
| Оператор | Назначение | Пример | Результат |
|---|---|---|---|
+ | Сложение | 5 + 3 | 8 |
- | Вычитание | 10 - 4 | 6 |
* | Умножение | 2 * 6 | 12 |
/ | Деление | 10 / 3 | 3.333... |
// | Целочисленное деление | 10 // 3 | 3 |
% | Остаток от деления | 10 % 3 | 1 |
** | Возведение в степень | 2 ** 3 | 8 |
💡 Важно: Запомните разницу между
/и//.
/всегда возвращает число с плавающей точкой (float), даже если результат целый (например,8 / 2будет4.0).//возвращает только целую часть деления.
Примеры:
price = 150
quantity = 3
total_cost = price * quantity
print(f"Общая стоимость: {total_cost} рублей") # Общая стоимость: 450 рублей
apples = 17
students = 5
apples_per_student = apples // students
remaining_apples = apples % students
print(f"Каждый студент получит по {apples_per_student} яблок.") # Каждый студент получит по 3 яблок.
print(f"Останется {remaining_apples} яблок.") # Останется 2 яблок.
Операторы сравнения: Сравниваем значения
Эти операторы сравнивают два значения. Результат всегда True (истина) или False (ложь).
| Оператор | Назначение | Пример | Результат |
|---|---|---|---|
== | Равно | 5 == 5 | True |
!= | Не равно | 5 != 3 | True |
> | Больше | 10 > 7 | True |
< | Меньше | 4 < 9 | True |
>= | Больше или равно | 5 >= 5 | True |
<= | Меньше или равно | 2 <= 1 | False |
Примеры:
age = 18
is_adult = age >= 18
print(f"Пользователь совершеннолетний? {is_adult}") # Пользователь совершеннолетний? True
password = "mysecretpassword"
input_password = "Mysecretpassword"
is_correct_password = password == input_password
print(f"Пароль верный? {is_correct_password}") # Пароль верный? False (из-за регистра)
temperature = 25
is_hot = temperature > 30
print(f"На улице жарко? {is_hot}") # На улице жарко? False
⚠️ Внимание: Не путайте оператор присваивания
=с оператором сравнения==.
=присваивает значение переменной.==проверяет, равны ли значения.
Логические операторы: Строим сложные условия
Логические операторы (and, or, not) объединяют булевы значения или результаты сравнений, чтобы создавать сложные условия.
| Оператор | Назначение | Пример | Результат |
|---|---|---|---|
and | Логическое "И" (оба условия должны быть True) | True and False | False |
or | Логическое "ИЛИ" (хотя бы одно условие True) | True or False | True |
not | Логическое "НЕ" (инвертирует булево значение) | not True | False |
Примеры:
has_ticket = True
is_vip = False
age = 20
# Условие для входа на концерт: есть билет И возраст больше 16
can_enter_concert = has_ticket and age > 16
print(f"Может войти на концерт? {can_enter_concert}") # Может войти на концерт? True
# Условие для бесплатного напитка: VIP ИЛИ возраст больше 60
free_drink = is_vip or age > 60
print(f"Получит бесплатный напиток? {free_drink}") # Получит бесплатный напиток? False
# Условие "не холодно"
is_cold = False
is_not_cold = not is_cold
print(f"Не холодно? {is_not_cold}") # Не холодно? True
Логические операторы — основа для создания условий в программах. Скоро вы увидите, как они управляют ходом выполнения кода!
Порядок выполнения операторов
Как и в математике, у операторов есть приоритет. Сначала Python выполняет арифметические операции, затем сравнения, и в конце — логические. Внутри каждой группы тоже есть свой порядок (например, умножение и деление перед сложением и вычитанием).
Хотите изменить порядок? Используйте скобки ().
result = 5 + 3 * 2 # Сначала 3 * 2 = 6, потом 5 + 6 = 11
print(result) # 11
result_with_parentheses = (5 + 3) * 2 # Сначала 5 + 3 = 8, потом 8 * 2 = 16
print(result_with_parentheses) # 16
# Комбинация
is_eligible = (age >= 18 and has_ticket) or is_vip
Практическое задание
Примените новые знания:
- Создайте две переменные
num1иnum2с любыми числами. - Вычислите и выведите на экран:
- Сумму
num1иnum2. - Результат целочисленного деления
num1наnum2. - Остаток от деления
num1наnum2.
- Сумму
- Создайте переменные
user_name(строка) иmin_length(число). - Используя операторы сравнения и логические операторы, напишите условие, которое проверяет:
- Длина
user_nameбольше или равнаmin_lengthИuser_nameне равно "admin". - Выведите результат этой проверки.
- Длина
Эти операторы — фундамент для любой логики в ваших программах. В следующем уроке мы узнаем, как использовать их для принятия решений и управления ходом выполнения кода с помощью условных конструкций if/elif/else.