Это четко указано в документах относительно &&
(логическое и операторное):
Возвращает expr1, если его можно преобразовать в false;в противном случае возвращает expr2.Таким образом, при использовании с логическими значениями && возвращает true, если оба операнда имеют значение true;в противном случае возвращает false.
Таким образом, действительно, в вашем случае будет возвращено первое выражение в вашем случае - пустая строка.В контексте , если , где утверждение интерпретируется как boolean
, тогда вы получите результат True / False, как вы ожидаете, или если вы выполните приведение напрямую.