Глава 9 · Выполняй мою команду!
Больше одного условия! :O
and, or и not вместе — приоритет операторов и перевод человеческой фразы в Python-условие.
Мы разобрали and, or и
not по отдельности — теперь соберём их вместе и разберём, как
Python понимает более сложные условия.
logicheskie_operatory.py
age = 20
has_ticket = True
if age >= 18 and has_ticket:
print("Проходите в зал.")
is_weekend = False
is_holiday = True
if is_weekend or is_holiday:
print("Сегодня можно не ходить на работу.")
if not has_ticket:
print("Сначала нужно купить билет.")
Приоритет операторов
Когда в одном условии встречаются and и
or вместе, Python сначала вычисляет
not, затем and, и только потом
or — совсем как умножение выполняется раньше сложения в
арифметике:
not
выполняется первым
and
выполняется вторым
or
выполняется последним
prioritet.py
print(True or False and False)
# and выполнится первым: False and False -> False
# затем or: True or False -> True
Скобки помогают читать сложные условия
Не заставляйте читателя (и себя в будущем) запоминать таблицу приоритетов. Когда условий много, скобки делают порядок явным:
is_admin or (is_owner and is_active) читается однозначно, в отличие от варианта без скобок.Переводим человеческий язык в условие — и обратно
| Человеческая фраза | Python-условие |
|---|---|
| «возраст не меньше 18» | age >= 18 |
| «температура ниже нуля» | temperature < 0 |
| «имя не пустое» | name (достаточно самого имени — truthiness) |
| «ответ — да или yes» | answer in ("да", "yes") |
| «совершеннолетний и с билетом» | age >= 18 and has_ticket |
Это фундаментальный навык: научиться формулировать вопрос на человеческом языке, а затем перевести его в Python-условие — и наоборот, читать готовое условие как предложение.
Практика: and, or, not вместе и приоритет
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки