有人能用Python(2.7和3)解释这种行为吗
>>> a = "Monday" and "tuesday"
>>> a
'tuesday' # I expected this to be True
>>> a == True
False # I expected this to be True
>>> a is True
False # I expected this to be True
>>> a = "Monday" or "tuesday"
>>> a
'Monday' # I expected this to be True
>>> a == True
False # I expected this to be True
>>> a is True
False # I expected this to be True
我希望,因为我使用的是逻辑运算符and
和or
,所以语句的计算结果将是a = bool("Monday") and bool("tuesday")
。你知道吗
那么这里发生了什么?你知道吗
正如所解释的,对字符串使用
and / or
将产生以下结果:a or b
如果a为真,则返回a,否则返回ba and b
如果a为真,则返回b,否则返回a这种行为称为Short-circuit_evaluation,它同时适用于
and, or
,如here所示。这就解释了为什么
a == 'tuesday'
在1st情况下,而'Monday'
在2nd情况下。你知道吗至于检查
a == True
、a is True
,对字符串使用逻辑运算符会产生一个特定的结果(如上所述),它与bool("some_string")
不同。你知道吗相关问题 更多 >
编程相关推荐