Замена условия на комбинацию логических операторов
Если логические операторы поддерживают ленивые вычисления, то появляется возможность замены условий на комбинацию логических операторов.
Простое условие может быть заменено оператором 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.