Python: логические операторы
Разберём «Python: логические операторы» по шагам: короткая теория, наглядный пример, разбор типового задания и ловушки, на которых теряют баллы. В конце — что запомнить и где закрепить на практике.
Что такое логические операторы в Python
Если программа должна не просто считать, а принимать решения, без логических операторов не обойтись. Именно они помогают проверить несколько условий, выбрать нужную ветку и избежать длинных повторяющихся проверок. В этой статье ты разберёшься, как работают and, or и not, научишься читать выражения слева направо и уверенно решать задачи на условия. После этого задания вроде «вывести сообщение, если число находится в диапазоне и делится на 3» станут понятнее.
Логическое выражение возвращает одно из двух значений: True — истина или False — ложь. Например, сравнение 7 > 3 даёт True, а 7 == 3 — False. Результат можно сохранить в переменной или сразу использовать после if.
\( age = 14 \)
\( print(age >= 12) \)
Результат: True
Знак == проверяет равенство, а = только присваивает значение. Это различие особенно важно в задачах для школы и экзамена.
Оператор and: все условия должны быть истинными
and переводится как «и». Он объединяет условия и возвращает истину только тогда, когда истинно каждое из них. Если хотя бы одна часть ложна, всё выражение становится False. Представь пропуск в школьную лабораторию: нужно одновременно иметь разрешение и быть в списке. Одного выполненного условия недостаточно.
\( temperature = 22 \)
\( is_sunny = True \)
print(temperature > 18 and is_sunny)
Результат: True
В первой части проверяется температура, во второй — значение переменной. Условия можно заключать в скобки, чтобы сделать смысл заметнее. Это полезно, когда выражение становится длинным или в нём появляются разные операторы сравнения.
| Выражение | Результат | Почему |
|---|---|---|
| True and True | True | Оба условия истинны |
| True and False | False | Одно условие ложно |
| False and False | False | Нет истинных условий |
Потренироваться на коротких проверках можно в бесплатной практике в личном кабинете: сначала предскажи результат, а потом запусти код.
Оператор or: достаточно одного условия
or означает «или». Всё выражение истинно, если истинно хотя бы одно условие. Например, скидка может действовать для ученика или для участника олимпиады. Если человек подходит по одному признаку, проверка уже успешна.
day = "суббота"
is_holiday = day == "суббота" or day == "воскресенье"
print(is_holiday)
Результат: True
Обрати внимание: вторая часть сравнивает переменную с другим значением. Можно объединять несколько вариантов, но слишком длинная цепочка ухудшает читаемость. Иногда лучше использовать список и оператор in: так код явно показывает, что мы ищем значение среди вариантов.
day = "суббота"
print(day in ["суббота", "воскресенье"])
Результат: True
Читай or как «подойдёт хотя бы один вариант», а and как «нужно выполнить всё». Полезно проговаривать условие обычными словами до написания кода.
На практике or часто используют для проверки границ: число должно быть меньше 0 или больше 100, чтобы определить ошибочный ввод.
Оператор not и порядок выполнения
not меняет логическое значение на противоположное: True превращает в False, а False — в True. Он удобен, когда нужно проверить отрицание: пользователь не вошёл, файл не найден, число не является чётным.
\( has_ticket = False \)
print(not has_ticket)
Результат: True
У логических операторов есть порядок выполнения: сначала not, затем and, затем or. Но полагаться на память не всегда разумно. Скобки делают выражение однозначным и помогают не ошибиться.
\( age = 15 \)
\( has_permission = True \)
\( result = age >= 14 and has_permission or age >= 18 \)
print(result)
Результат: True
В этом примере сначала вычисляется часть с and, затем результат сравнивается через or. Для сложного условия лучше записать так:
\( result = (age >= 14 and has_permission) or age >= 18 \)
Так сразу видно, что разрешение относится к первой группе условий, а совершеннолетие — отдельный вариант.
Разобранный пример и типичные ошибки
Задача: программа получает число и должна сообщить, входит ли оно в диапазон от 10 до 20 включительно или является отрицательным. Разберём решение по шагам. Сначала создаём переменную, затем записываем два условия. Для диапазона нужны одновременно проверки x ≥ 10 и x ≤ 20, поэтому между ними ставим and. Между диапазоном и отрицательным числом нужен or.
\( x = 15 \)
\( in_range = x >= 10 and x <= 20 \)
\( is_negative = x < 0 \)
if in_range or is_negative:
print("Число подходит")
else:
print("Число не подходит")
Результат: Число подходит
Частая ошибка — написать x >= 10 or x <= 20 для диапазона. Такое выражение почти всегда будет истинным: числу достаточно выполнить одно из условий. Ещё одна ошибка — использовать is вместо == при сравнении обычных значений. Наконец, не забывай про отступ после if.
Запись if x == 1 or 2 не означает «x равен 1 или 2». Python проверяет только x == 1, а число 2 само по себе считается истинным. Правильно: if x == 1 or x == 2.
Если хочешь закрепить именно такие конструкции, реши несколько задач в личном кабинете с бесплатными заданиями.
Что запомнить
Логические операторы позволяют объединять и изменять условия. and требует истинности всех частей, or — хотя бы одной, а not меняет результат на противоположный. Для диапазона обычно нужен and, для выбора одного из вариантов — or. Сравнение выполняется операторами ==, !=, >, <, >= и <=. Если выражение трудно прочитать, добавь скобки и разнеси вычисления по переменным.
Следующий шаг простой: зарегистрируйся и реши 5 заданий бесплатно в личном кабинете. Перед запуском каждой программы попробуй самостоятельно предсказать, получится True или False. Для подготовки к экзамену также пригодятся материалы по ОГЭ и ЕГЭ: навык внимательно читать условия переносится на задачи с ветвлениями и алгоритмами.
Чем and отличается от or?
and возвращает True только при истинности всех условий. or возвращает True, если истинно хотя бы одно условие.
Как работает not?
not меняет логическое значение на противоположное: True становится False, а False — True.
Можно ли использовать скобки?
Да. Скобки уточняют порядок вычислений и делают сложное условие понятнее для автора и читателя программы.
Как закрепить тему после разбора?
Реши несколько коротких задач: определи результат выражения, исправь ошибку и составь условие для диапазона. Затем проверь код в бесплатной практике личного кабинета.
Закрепить тему на практике
Теория без практики забывается за неделю. В личном кабинете Просто Урок — задания именно по этой теме с проверкой каждого шага. Регистрация бесплатная.