在玩的时候发现了这个小怪胎。在
>>> 'Hello' == ('Hello' or 'World')
True
>>> 'Hello' == ('World' or 'Hello')
False
>>> 'Hello' == ('Hello' and 'World')
False
>>> 'Hello' == ('World' and 'Hello')
True
这不是我的逻辑吗?为什么字符串的顺序是这些查询的决定因素?我应该不使用括号吗?为什么要改变为“和”翻转输出?在
谢谢你给我一个面包卷。在
Tags:
x or y
如果第一个操作数是真的,则返回第一个操作数,否则返回 第二个操作数。在x and y
返回第一个操作数,如果 否则返回第二个操作数。在对于你想要完成的事情,你可能更喜欢这样:
在Python中,所有对象都可以被认为是“truthy”或“falsy”。Python在计算布尔逻辑时使用这个事实来创建一个秘密的快捷方式。如果它遇到一个允许逻辑“短路”的值,例如
or
开头的True
,或者and
开头的False
,它只返回最终值。这是因为该值本身的计算结果是正确的或错误的,因此无论使用什么样的布尔上下文,它都将继续按预期工作。事实上,这样的操作总是返回它们遇到的第一个值,该值允许它们完全计算表达式(即使它是最后一个值)。在相关问题 更多 >
编程相关推荐