2016-06-17 2 views
2

Я в настоящее время в процессе обучения Python 2.7 и наткнулись на равенство и логических операторовPython 2.7 Логическое Операторы логики

Мой вопрос:

Почему False and 1 является False но True and 1 является 1

Аналогично, False or 1 является 1 но True or 1 является True

Может кто-то любезно объяснить, почему это происходит

Большое спасибо

ответ

3

и возвращает первое «falsy» (False, ноль, пустая строка или список и т.д.) значение он видит, или окончательный если ни одна из них не была ложной. Дальнейшие значения даже не оцениваются, так как они не могут изменить результат.

или также возвращает первый «правдивый» (значение True, отличное от нуля, непустая строка или список и т. Д.), Которое он видит (или последний, если он не существует), и не оценивает отдых.

Такое поведение иногда более удобно, чем строгое возвращение только True или False.

+0

Спасибо, Джейсон. Я упускал из виду тот факт, что любое число, отличное от '0', также может считаться« Истиной ». –

+0

Btw, переходя по логике выше, почему вы думаете, что 'False или 0' возвращает' 0'. В этом случае оба они на самом деле являются фальсификациями, не так ли? –

+1

@pb_ng Обратите внимание, что ответ указывает на случай «или»: «или аналогично возвращает первое« правдивое »[...] значение, которое он видит (** или последний, если он не был **)». В 'False или 0' нет истинных значений, поэтому последним является 0. – user4815162342

Смежные вопросы