Дрон Кодер — программирование для детей и взрослых в игровой форме. Начать бесплатно

and и or как выбор значения

В Python and и or не просто дают True или False — они возвращают одно из операндов. Это удобный приём.

or — значение по умолчанию

Выражение a or b возвращает a, если оно «истинно», иначе b. Пустая строка, 0 и None считаются «ложными». Поэтому or удобно для значения по умолчанию: name or 'друг' даст 'друг', если name пустой.

name = ''
print(name or 'друг')   # 'друг'

and — до первого «ложного»

Выражение a and b возвращает a, если оно «ложно» (и дальше не смотрит), иначе b. Это позволяет безопасно обращаться к чему-то, только если предыдущее не пустое.

Осторожно с нулём

Приём мощный, но есть ловушка: 0 и пустая строка — «ложные», поэтому 0 or 5 даст 5, даже если 0 был осмысленным значением. Если ноль допустим, проверяйте явно через if, а не через or.

Частые вопросы

or всегда возвращает True/False? Нет, он возвращает один из операндов; True/False — лишь частный случай.

Когда лучше обычный if? Когда 0 или пустая строка — допустимые значения, чтобы их случайно не заменить.

Начать игру бесплатно
Попробуй прямо здесь
Уровень 1

Задание