Комбинируем and и or
and связывает крепче, чем or: чтобы не путаться, расставляй скобки явно.
В одном выражении можно соединить and и or. Важно помнить: and выполняется раньше, чем or, как умножение раньше сложения.
В первом примере сначала считается False and False, а потом or. Скобки меняют порядок и результат. Поэтому в сложном правиле лучше расставлять их самому — код станет понятнее.
- Собери внутри функции правило входа из трёх аргументов.
- Оберни в скобки связку «есть билет и возраст не меньше 12».
- Добавь or is_guest и проверь три вызова.
Отлично! Гость без билета проходит, ребёнок с билетом — нет. Скобки сделали правило однозначным.
Требования
can_enter(has_ticket, age, is_guest) возвращает True, если есть билет и возраст не меньше 12, или если человек гость. Остальным — False. Вывод: True, True, False — по строке на каждый вызов.
Проверка
Проверка запускает программу с чистого листа, сверяет три строки вывода и вызывает функцию для ребёнка с билетом и для гостя без билета.