Може ли някой да обясни мотивите зад следните тестове??
>>> 1 and True
True
>>> {'foo': 'Foo'} and True
True
>>> {} and True
{}
>>>
Може ли някой да обясни мотивите зад следните тестове??
>>> 1 and True
True
>>> {'foo': 'Foo'} and True
True
>>> {} and True
{}
>>>
В контекста на булевите операции, а също и когато изразите се използват от изрази за контролен поток, следните стойности се интерпретират като false: False, None, числова нула от всички типове и празни низове и контейнери (включително низове, кортежи, списъци, речници , набори и замразени набори). Всички други стойности се интерпретират като верни.
Изразът x и y първо изчислява x; ако x е невярно, неговата стойност се връща; в противен случай y се оценява и се връща получената стойност.
Изразът x или y първо изчислява x; ако x е вярно, неговата стойност се връща; в противен случай y се оценява и се връща получената стойност.
За допълнителна справка прочетете повече за булевите операции: http://docs.python.org/reference/expressions.html#boolean-operations
Python няма има булев и или булев или. Неговите оператори and
и or
са обединени, което означава, че връщат първия неверен или истински операнд или втория операнд.