Замена условия на комбинацию логических операторов

Если логические операторы поддерживают ленивые вычисления, то появляется возможность замены условий на комбинацию логических операторов.

Простое условие может быть заменено оператором and:

if a:
    print(a)
    
a and print(a)

Условие с блоком else так же может быть заменено на комбинацию из and и or.

if a > b:
    print(a)
else:
    print(b)

(a > b or print(b)) and print(a)

Если условие a > b равно True то второй аргумент or уже не выполняется, а вот второй аргумент and должен быть проверен для определения результата всего выражения.

В случае когда условие равно False возникает необходимость в проверке второго аргумента or, функция print(b) возвращает None которая трактуется как False в результате оператор or вычисляется в False. Проверять второй аргумент and уже не нужно, так как первый равен False.

Ссылки на эту заметку

Эта заметка на GitHub

Обсудить на форуме

Последниее изменение: