Глава 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, без установки
Открыть практику →