2024-03-28 19:30:35 发布
网友
下面是场景。你知道吗
>>> False and 0 => False >>> 0 and False => 0
这两个条件是相同的,但为什么它返回不同的结果?你知道吗
>>> 0 or False => False >>> False or 0 => 0
同样,这两个条件应该返回相同的结果,但是为什么它们不同呢?你知道吗
这同样适用于True和1的情况
True
1
Python条件检查使用Short-Circuit Evaluation。这意味着:
False and 0
它正在执行一个and语句,因此两个元素的值都必须为1。因为False不检查第二个,所以它不检查第二个并返回False。这也适用于0 and False,但是由于0是第一个元素,因此它返回0。你知道吗
and
0 and False
False or 0
在本例中,它正在执行or求值,因此其中一个元素的求值必须为1(或True)。因为False没有,所以它检查第二个操作符(0),它的计算结果都不是1,所以它返回它。这同样适用于0 or False。你知道吗
or
0
0 or False
这里有另一种方法可以消除任何疑问。使用0 or "Text"它返回"Text",因为它的计算结果是True。你知道吗
0 or "Text"
"Text"
or是一个短路运算符,因此它只在第一个参数为false时计算第二个参数。在这种情况下,False or 0,第一个参数的值为False,然后第二个参数的值为0,并返回0。这对这两种情况都有效(0 or False)。你知道吗
and也是一个短路运算符,因此它仅在第一个参数为真时计算第二个参数。在False and 0情况下,第一个参数求值为False,然后第二个参数不求值并返回第一个参数,反之亦然。你知道吗
更多信息clarification, refer the docs.
在python中,and, or运算符不返回布尔值。它们返回最后评估的内容。因为它们是短路运算符,所以表达式0 and False最不需要计算的是0。类似地,对于0 or False,最后需要检查的是第二个操作数False。你知道吗
and, or
False
从python文档中:
x or y
x
y
x and y
not x
Python条件检查使用Short-Circuit Evaluation。这意味着:
它正在执行一个
and
语句,因此两个元素的值都必须为1。因为False不检查第二个,所以它不检查第二个并返回False。这也适用于0 and False
,但是由于0是第一个元素,因此它返回0。你知道吗在本例中,它正在执行
or
求值,因此其中一个元素的求值必须为1(或True)。因为False没有,所以它检查第二个操作符(0
),它的计算结果都不是1,所以它返回它。这同样适用于0 or False
。你知道吗这里有另一种方法可以消除任何疑问。使用
0 or "Text"
它返回"Text"
,因为它的计算结果是True
。你知道吗or
是一个短路运算符,因此它只在第一个参数为false时计算第二个参数。在这种情况下,False or 0
,第一个参数的值为False,然后第二个参数的值为0,并返回0。这对这两种情况都有效(0 or False
)。你知道吗and
也是一个短路运算符,因此它仅在第一个参数为真时计算第二个参数。在False and 0
情况下,第一个参数求值为False,然后第二个参数不求值并返回第一个参数,反之亦然。你知道吗更多信息clarification, refer the docs.
在python中,
and, or
运算符不返回布尔值。它们返回最后评估的内容。因为它们是短路运算符,所以表达式0 and False
最不需要计算的是0
。类似地,对于0 or False
,最后需要检查的是第二个操作数False
。你知道吗从python文档中:
x or y
:如果x
为假,则y
,否则x
x and y
:如果x
为假,则x
,否则y
not x
:如果x
为假,则为真,否则为假相关问题 更多 >
编程相关推荐