Оператор not
not переворачивает логическое значение: True становится False и наоборот.
Оператор not ставится перед выражением и меняет его значение на противоположное. Если условие истинно, not даёт False, и наоборот.
Если после not стоит цепочка из нескольких условий, её нужно взять в скобки — иначе not отнесётся только к первому. not (a or b) означает «ни a, ни b».
Функция ниже отвечает, работает ли магазин. Известно, когда он закрыт: в выходной или в праздник. Значит, открыт он ровно в остальных случаях.
- Собери внутри скобок условие «выходной или праздник».
- Поставь not перед скобками.
- Верни результат и проверь три вызова.
Отлично! В обычный день магазин открыт, а в выходной и в праздник — закрыт. not перевернул условие «выходной или праздник».
Требования
is_open(is_weekend, is_holiday) возвращает True в обычный день и False, если сегодня выходной или праздник. Вывод: False, True, False — по строке на каждый вызов.
Проверка
Проверка запускает программу с чистого листа, сверяет три строки вывода и вызывает функцию для буднего дня, выходного и праздника.
Если интересно
У not есть близкий родственник — оператор !=. Запись x != 5 читается как «x не равен пяти» и работает так же, как not (x == 5). Для простых сравнений обычно берут !=, а not — для целых условий.