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