Код БарсикОсновы Python
Основы Python›C06 · Теория

Теория · C06

Логические выражения и границы

Разберись в теме, запусти пример и переходи к самостоятельным задачам.

РАЗБИРАЕМ ПО ШАГАМ

От идеи к работающему коду

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

Сразу к запуску примера ↓
and требует выполнения обоих условий, or допускает хотя бы одно.
and требует выполнения обоих условий, or допускает хотя бы одно.
  1. 1Простые условия
  2. 2and / or / not
  3. 3Общее решение

1. and: должны выполняться оба условия

Для булевых значений and даёт True только тогда, когда обе части истинны. Например, температура должна быть не ниже 15 и не выше 35. Значения на обеих границах подходят.

Python допускает краткую запись 15 <= temperature <= 35. На старте полезно сначала написать два сравнения с and, чтобы видеть обе проверки.

Python
temperature = 15comfortable = temperature >= 15 and temperature <= 35print(comfortable)

2. or: достаточно одного условия

Для булевых значений or возвращает True, если хотя бы одно условие истинно. «Хотя бы одно» включает случай, когда истинны оба. Это не правило «строго одно из двух».

Доступ по билету или приглашению разрешён и тому, у кого есть оба документа. Проверяй четыре комбинации: нет/нет, нет/да, да/нет, да/да.

Python
has_ticket = Falsehas_invitation = Trueallowed = has_ticket or has_invitationprint(allowed)

3. not: меняем булево значение

not превращает True в False и наоборот. Правило будильника можно записать так: учебный день и не каникулы. Имена переменных помогают читать выражение почти как предложение.

Здесь мы используем булевы значения. В общем случае and и or могут возвращать сами операнды, а не только True/False; сейчас не смешиваем их с числами и строками.

Python
school_day = Trueholiday = Falseif school_day and not holiday:    print("Будильник включён")else:    print("Будильник выключен")

4. Скобки и границы

not выполняется раньше and, а and раньше or. Если смысл не очевиден с первого взгляда, поставь скобки: это делает намерение автора явным.

Для диапазона 15–35 проверь 14, 15, 35, 36. Для доступа проверь каждую комбинацию документов. Один удачный пример не доказывает правильность правила. Ошибки часто живут ровно на границах.

Python
has_pass = Truepass_valid = Falseis_admin = Falseallowed = (has_pass and pass_valid) or is_adminprint(allowed)

Где легко ошибиться

  • Запись x == 1 or 2 не означает «x равно 1 или 2». Нужны два сравнения.
  • and и or не взаимозаменяемы.
  • Строка "False" — непустой текст, а не булево False.
Проверь понимание: Какие результаты даст and и or для True и False?

True and False даёт False: оба условия не выполнены. True or False даёт True: одного достаточно.

Проверяем границы

Запусти пример. Затем измени код или входные данные и проверь, как меняется вывод.

Пример входных данных

50
3

Ожидаемый вывод

Движение разрешено
main.pyPython · можно менять код

Подготавливаем редактор…

Загрузка Python…

Каждый ответ — с новой строки.

Твой вывод

Здесь появится результат запуска.

Дальше — самостоятельные задачи

  1. Проверить температуры 14, 15, 35, 36 для лета
  2. Разрешить будильник только в учебный день без каникул
  3. Проверить, делится ли число сразу на два делителя