логические «и» в Python - PullRequest
       6

логические «и» в Python

4 голосов
/ 09 ноября 2010

Может кто-нибудь объяснить причину следующих тестов ??

>>> 1 and True
True
>>> {'foo': 'Foo'} and True
True
>>> {} and True
{}
>>>

Ответы [ 2 ]

8 голосов
/ 09 ноября 2010

Python не имеет логическое значение и / или логическое значение или. Его and и or операторы объединяются , что означает, что они возвращают первый неверный или истинный операнд или второй операнд.

5 голосов
/ 09 ноября 2010

В контексте логических операций, а также когда выражения используются в выражениях потока управления, следующие значения интерпретируются как ложные: Ложь, Нет, числовой ноль всех типов и пустые строки и контейнеры (включая строки, кортежи списки, словари, наборы и морозенцы). Все остальные значения интерпретируются как истина.

Выражения x и y сначала вычисляют x; если x равен false, возвращается его значение; в противном случае вычисляется y и возвращается полученное значение.

Выражение x или y сначала оценивает x; если x истинно, возвращается его значение; в противном случае вычисляется y и возвращается полученное значение.

Для получения дополнительной информации читайте больше о логических операциях: http://docs.python.org/reference/expressions.html#boolean-operations

...