Может кто-нибудь объяснить рассуждения следующих тестов?boolean 'and' in Python
>>> 1 and True
True
>>> {'foo': 'Foo'} and True
True
>>> {} and True
{}
>>>
Может кто-нибудь объяснить рассуждения следующих тестов?boolean 'and' in Python
>>> 1 and True
True
>>> {'foo': 'Foo'} and True
True
>>> {} and True
{}
>>>
В контексте булевых операций, а также когда выражения используются операторами управления потоком, следующие значения интерпретируются как ложные: False, None, numeric zero всех типов и пустые строки и контейнеры (включая строки, кортежи , списки, словари, наборы и фризоздаты). Все остальные значения интерпретируются как истинные.
Выражение x и y сначала оценивает x; если x ложно, возвращается его значение; в противном случае y вычисляется и возвращается возвращаемое значение.
Выражение x или y сначала оценивает x; если x истинно, возвращается его значение; в противном случае y вычисляется и возвращается возвращаемое значение.
Для дальнейшей ссылки далее на булевых операциях: http://docs.python.org/reference/expressions.html#boolean-operations
Python не имеют булевой и или логическое или. Операторы и or
являются , коалесцирующие, что означает, что они возвращают первый неверный или истинный операнд или второй операнд.
Связанный вопрос: http://stackoverflow.com/questions/3826473/boolean-operations-in-python-ie-the-and-or-operators – tzot