使用-1的逻辑OR运算

Ril*_*wan 3 python logical-operators python-2.7

为什么我在python中尝试的以下逻辑操作的输出不同?

-1 or 1
 1 or -1
Run Code Online (Sandbox Code Playgroud)

第一次返回-1和第二次返回1

nne*_*neo 8

and而且or懒惰 ; 它们会评估操作数,直到它们可以决定结果(and在第一个False操作数处or停止; 在第一个True操作数处停止).它们返回评估的最后一个操作数,如文档所述:

需要注意的是既不and也不or限制他们返回的值和类型FalseTrue,而是返回最后一个变量.这有时是有用的,例如,如果s是一个字符串,如果它是空的,应该用默认值替换,表达式s or 'foo'产生所需的值.


Bre*_*arn 7

阅读文档:

表达式x or y首先评估x; 如果x为真,则返回其值; 否则,y将评估并返回结果值.