Ответ 1
Ответ можно найти на 5.10. Булевы выражения:
Выражение
x and y
сначала оценивает x; если x ложно, возвращается его значение; в противном случае y вычисляется и возвращается возвращаемое значение.
Мне было интересно, почему
True and []
возвращает [] вместо False
Является ли выражение синтаксическим сахаром?
Ответ можно найти на 5.10. Булевы выражения:
Выражение
x and y
сначала оценивает x; если x ложно, возвращается его значение; в противном случае y вычисляется и возвращается возвращаемое значение.
Этот синтаксический сахар иногда используется как тернарный оператор в Python
C++: someVar = someCondition ? valueIfTrue : valueIfFalse;
Python: someVar = someCondition and valueIfTrue or valueIfFalse
Изменить: Оказалось, что в комментариях:), это большая ошибка в Python и должна быть заменена на
someVar = valueIfTrue if condition else valueIfFalse