请向我解释这个布尔代码是如何工作的

时间:2015-11-17 23:08:23

标签: python

我只是在Python中愚弄,虽然我理解布尔逻辑如何使用'True'或'False'...当你使用其他术语时我不理解结果。例如,如果我输入Python:

"bear" and "dog"
"1 and 6"
"crab" or "food"

输出是:

'dog'
6
'crab'

为什么呢?我没有将这些变量中的任何一个分配给'True'或'False',那么Python如何知道要打印哪一个?你如何确定哪个是'真',哪个是'假'?

很抱歉,如果这张贴在某个地方;我试着看,但不确定这类问题的关键术语是什么。

1 个答案:

答案 0 :(得分:2)

这是一个特殊情况,你在这里看:

通常情况下,您不会关心a and b的实际值,而只关心它是否评估为True

这里发生的是or如果评估为True则返回第一个值,否则返回第二个值,所以

if a or b:
如果if a评估为a

实际上会True,如果不是if b,则会and

True反之亦然:如果第一个操作数的计算结果为a and b,则返回第二个操作数(TrueTrue,前提是它们都计算为False }),否则返回第一个。

如果你的语句只能在另一个事物是function_that_might_return_false_on_error() or die_horribly() 时执行,那么这非常方便。

type: Vendor[]